/*
要求出[1,R]之间的质数会超时,但是要判断[L,R]之间的数是否是素数却不用筛到R
因为要一个合数n的最大质因子不会超过sqrt(n)
所以只要将[2,sqrt(R)]之间的素数筛出来,再用这些素数去筛[L,R]之间的合数即可
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
#define ll long long ll L,R,ans[];
int v[],prime[],m,isprime[];
void init(int n){
memset(v,,sizeof v);
m=;
for(int i=;i<=n;i++){
if(v[i]==){
v[i]=i;
prime[++m]=i;
}
for(int j=;j<=m;j++){
if(prime[j]>v[i] || prime[j]>n/i) break;
v[i*prime[j]]=prime[j];
}
}
} int main(){
init();//打表求出[2,10^7]之内的质数
while(scanf("%lld%lld",&L,&R)==){
if(L==) L=;
memset(isprime,,sizeof isprime);
for(ll i=;i<=m;i++){
if(prime[i]>sqrt(R)+)break;//超过sqrt(R)的质数就不用筛了
for(ll j=(L-)/prime[i]+;prime[i]*j<=R;j++)
if(j>)isprime[prime[i]*j-L]=;
} ll L1,R1,L2,R2,Max=-,Min=,tot=;
for(ll i=;i<=R-L;i++)
if(!isprime[i]) ans[tot++]=i+L; if(tot<=) {
puts("There are no adjacent primes.");
continue;
}
for(int i=;i<tot;i++){
if(Max<ans[i]-ans[i-]){
Max=ans[i]-ans[i-];
L1=ans[i-],R1=ans[i];
}
if(Min>ans[i]-ans[i-]){
Min=ans[i]-ans[i-];
L2=ans[i-],R2=ans[i];
}
}
printf("%lld,%lld are closest, %lld,%lld are most distant.\n",L2,R2,L1,R1);
}
}
/*阶乘分解:给定一个n,求分解n!的质因数,输出总共有多少质因数
思路:筛出1-N所有的质因数,质因数p在n!中出现的次数即p在1-n所有数中出现的次数之和,那么p出现了n/p次,p*p出现了n/p*p次,。。累加即可
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
#define ll long long int n,m,prime[],v[];
void init(int n){
memset(prime,,sizeof prime);
memset(v,,sizeof v);
m=;
for(int i=;i<=n;i++){
if(v[i]==){
v[i]=i;
prime[++m]=i;
}
for(int j=;j<=m;j++){
if(prime[j]>v[i] || prime[j]*i>n) break;
v[i*prime[j]]=prime[j];
}
}
} int main(){
init();
while(scanf("%d",&n)==){
ll ans=;
for(int i=;i<=m;i++){
if(prime[i]>n) break;
int j=prime[i];
while(j<=n){
ans+=n/j;
j*=prime[i];
}
}
printf("%d\n",ans);
}
}
//质数筛法
/*Era筛:
复杂度:O(nloglogn)非常接近线性
原理:任何质数x的倍数:2x,3x,...都是合数,优化后只要筛 >=x*x的数即可
*/
void primes(int n){
memset(v,,sizeof v);//合数标记
for(int i=;i<=n;i++){
if(v[i]) continue;
for(int j=i;i*j<=n;j++) v[i*j]=;
}
} /*
线性筛
复杂度:O(n)
原理:每个数只被它最小的数筛一次
*/
void primes(int n){
memset(v,,sizeof v);//每个数的最小质因子
memset(prime,,sizeof prime);//质数集合
m=;//质数数量
for(int i=;i<=n;i++){
if(v[i]==){//i是质数
v[i]=i;
prime[++m]=i;
}
for(int j=;j<=m;j++){
if(prime[j]>v[i] || prime[j]*i>n) break;//如果i有比prime[j]小的质因子,或者超出n范围
v[i*prime[j]]=prime[j];//prime[j]是i*prime[j]的最小质因子
}
}
} //质因数分解
/*
试除法
复杂度:O(sqrt(N))
原理:对于给定的n,枚举[2,sqrt(n)]中的每个数d,若n能整除d,则把n中所有的d除去
*/
void divide(int n){
memset(p,,sizeof p);//n的质因子
memset(c,,sizeof c);//个质因子的幂
m=;
for(int i=;i<=sqrt(n);i++){
if(n%i==){//i必定是质数
p[++m]=i,c[m]=;
while(n%i==)n/=i,c[m]++;
}
}
if(n>) p[++m]=n,c[m]=;//n是质数
}

hdu1124求阶乘的尾零

/*
阶乘求尾零
那就只要求出n!阶乘质因数分解后有多少2和5即可
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll ans,n,ans1,ans2;
int main(){
int T;
cin>>T;
for(int tt=;tt<=T;tt++){
cin>>n;
ans1=ans2=;
ll tmp=n;
while(n>=)
ans1+=n/,n/=;
while(tmp>=)
ans2+=tmp/,tmp/=;
ans=min(ans1,ans2);
cout<<ans<<endl;
}
}

light1138 二分答案,最后不要忘记验证答案,

#include<bits/stdc++.h>
using namespace std;
#define maxn 100005
#define ll long long
ll n;
int judge(ll mid){
ll res=;
while(mid>=)
res+=mid/,mid/=;
if(res>=n)return ;
return ;
}
int main(){
int T;
cin>>T;
for(int tt=;tt<=T;tt++){
cin>>n;//要有n个5因子
ll mid,l=,r=,ans=-;
while(l<=r){
mid=l+r>>;
if(judge(mid))
ans=mid,r=mid-;
else l=mid+;
} if(ans!=-){
ll tmp=ans,cnt=;
while(tmp>=)
cnt+=tmp/,tmp/=;
if(cnt!=n)ans=-;
} if(ans!=-)
printf("Case %d: %lld\n",tt,ans);
else printf("Case %d: impossible\n",tt);
}
}

数论-质数 poj2689,阶乘分解,求阶乘的尾零hdu1124, 求尾零为x的最小阶乘的更多相关文章

  1. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m

    给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后 ...

  2. LightOJ 1340 - Story of Tomisu Ghost 阶乘分解素因子

    http://www.lightoj.com/volume_showproblem.php?problem=1340 题意:问n!在b进制下至少有t个后缀零,求最大的b. 思路:很容易想到一个数通过分 ...

  3. luogu1445 [violet]樱花 阶乘分解

    题目大意 求方程$$\frac{1}{x}+\frac{1}{y}=\frac{1}{N!}$$的正整数解的组数. 思路 咱们把式子整理得$$xy-(x+y)N!=0$$.$xy$和$x+y$?貌似可 ...

  4. Pairs Forming LCM (LightOJ - 1236)【简单数论】【质因数分解】【算术基本定理】(未完成)

    Pairs Forming LCM (LightOJ - 1236)[简单数论][质因数分解][算术基本定理](未完成) 标签: 入门讲座题解 数论 题目描述 Find the result of t ...

  5. NYOJ 35 表达式求值(逆波兰式求值)

    http://acm.nyist.net/JudgeOnline/problemset.php?typeid=4 NYOJ 35 表达式求值(逆波兰式求值) 逆波兰式式也称后缀表达式. 一般的表达式求 ...

  6. 求包含每个有序数组(共k个)至少一个元素的最小区间

    title: 求包含每个有序数组(共k个)至少一个元素的最小区间 toc: false date: 2018-09-22 21:03:22 categories: OJ tags: 归并 给定k个有序 ...

  7. AcWing 197. 阶乘分解 (筛法)打卡

    给定整数 N ,试把阶乘 N! 分解质因数,按照算术基本定理的形式输出分解结果中的 pipi 和 cici 即可. 输入格式 一个整数N. 输出格式 N! 分解质因数后的结果,共若干行,每行一对pi, ...

  8. 【BZOJ-4522】密钥破解 数论 + 模拟 ( Pollard_Rho分解 + Exgcd求逆元 + 快速幂 + 快速乘)

    4522: [Cqoi2016]密钥破解 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 290  Solved: 148[Submit][Status ...

  9. LightOJ - 1138 (二分+阶乘分解)

    题意:求阶乘尾部有Q(1 ≤ Q ≤ 108)个0的最小N 分析:如果给出N,然后求N!尾部0的个数的话,直接对N除5分解即可(因为尾部0肯定是由5*2构成,那么而在阶乘种,2的因子个数要比5少,所以 ...

随机推荐

  1. 浅谈python函数签名

    函数签名对象,表示调用函数的方式,即定义了函数的输入和输出. 在Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名. 获取函数签名及参数 使用标准库的signature方 ...

  2. 【已解决】Microsoft visual c++ 14.0 is required问题解决办法

    装 识别图形验证码库tesserocr的时候,出现了Microsoft visual c++ 14.0 is required的问题,用离线安装还是没有用. 就只能乖乖装Microsoft visua ...

  3. tcpdump常用参数详解

    tcpdump常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 好久没有更新我的博客了,看来自己最近还没有在放假中回过神来啊,哈哈~是不是也有小伙伴跟我一样呢?回归正题, ...

  4. WebServer Security apache / bind / IIS5

    s C:\Users\Lindows\Desktop\学习参考 Apache_配置规范_(Linux).zip Apache_配置规范_(Windows).zip BIND_配置规范.zip IIS5 ...

  5. Cloud9 开发环境部署

    安装和部署 cloud9 云端开发环境 简介 Cloud9 是亚马逊发布的一款基于云端的开发环境. AWS Cloud9 是一种基于云的集成开发环境 (IDE),您只需要一个浏览器,即可编写.运行和调 ...

  6. __attribute__的一些相关属性

    __attribute__((format()))  这个format有3个参数. int my(NSString *str,NSString *str1,NSArray*str2,...) __at ...

  7. js 锚点定位【转】

    锚点定义 <a name="firstAnchor">&nsbp;</a> a标签锚点使用 <a href="#firstAncho ...

  8. xml总结(一 )

    一.了解 XML(eXtensive Markup Language)可扩展标记语言. XML是被用来传输和存储数据,焦点是内容,是对html的补充. HTML是将数据进行格式化显示.xml需要自定义 ...

  9. datetimepicker bootstrap的时间插件显示位置问题及其他配置

    位置问题: 在bootstrap中用 datetimepicker 时默认是在输入框下面弹出的, 但是遇到输入框在屏幕最下面时,日期选择框会有一部分在屏幕下面,显示不了,因此需要能够从上面弹出. 可以 ...

  10. 22. SpringBoot 集成 Mybatis

    1. 引入Mybatis的maven 依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> < ...