poj2689Prime Distance 素数筛选
来源:互联网 发布:windows双网卡绑定 编辑:程序博客网 时间:2024/05/29 14:25
poj2689Prime Distance
题目要求:在给定范围L~R中找出差值最大和最小的两组素数
要在L~R筛选素数 ,直接算出1~2,147,483,647的话肯定超时
但实际上,筛选1~2,147,483,647中的素数需要的因子并不多,只要找出2~sqrt(2,147,483,647)中的素数就够了,筛选法就是这么干的
之后用这些素数对L~R的区间试除 得到L~R内的素数 求出结果
#include<iostream>#include<cstdio>#include<cstring>using namespace std;bool Q[1001000];bool p[50000];int P[5000];int main(){__int64 i,j,k,L,R;for(i=2;i<=50000;i+=2)p[i]=0,p[i+1]=1;p[1]=0;p[2]=1;P[1]=2;P[0]=1;for(i=1;i<=46345;i+=2){if(p[i]){int k=i*i;while(k<50000){p[k]=0;k+=2*i;}P[++P[0]]=i;}}while(scanf("%I64d%I64d",&L,&R)!=EOF){int Start;for(i=L;i<=R;i++)Q[i-L]=1;for(i=1;i<=P[0];i++){if(P[i]>=R)break;Start=L/P[i];if(Start*P[i]<L)Start++;if(Start==1)Start++;for(j=Start;j*P[i]<=R;j++)Q[j*P[i]-L]=0;}if(L==1)Q[0]=0,Q[2]=1;if(L==2)Q[0]=1;__int64 pre=R,now=0,min=1000000000,max=0,a,b,x,y;for(i=L;i<=R;i++){if(Q[i-L]){pre=i;break;}}for(i=pre+1;i<=R;i++){if(Q[i-L]){now=i;if(now-pre<min){min=now-pre;a=pre,b=now;}if(now-pre>max){max=now-pre;x=pre,y=now;}pre=now;}}if(!now)printf("There are no adjacent primes.\n");elseprintf("%I64d,%I64d are closest, %I64d,%I64d are most distant.\n",a,b,x,y);}return 0;}/*2000000000 20000000012146483648 2147483647*/
- poj2689Prime Distance 素数筛选
- poj2689Prime Distance
- poj2689Prime Distance(数论)
- poj2689 Prime Distance 素数筛选应用 复习
- Prime Distance(大素数筛选)
- Prime Distance(筛选法求素数 )
- POJ 2689 Prime Distance(筛选两次素数)
- Prime Distance - POJ 2689 素数筛选
- POJ 2689 Prime Distance 素数筛选 -
- poj -- 2689 Prime Distance(筛选法求素数)
- 区间素数筛选法 joj 1928 Prime Distance
- POJ 2689 Prime Distance (经典素数筛选)
- POJ 2689 Prime Distance (素数+两次筛选)
- POJ 2689 Prime Distance 求素数距离(两次筛选)
- Poj 2689 Prime Distance ----大区间素数筛选
- POJ 2689 Prime Distance 素数筛选法应用
- POJ 2689 Prime Distance 素数筛选法应用
- ZOJ 1842Prime Distance(素数筛选法2次使用)
- 一个c程序是如何启动和终止的
- Android开发之:OpenMax的接口与实现
- 关于C++中的一些迭代器的用法
- UIUC Jia-Bin Huang同学整理的计算机视觉资源 (2)............持续更新
- linux手动修改ip、dns(red hat 5.5)
- poj2689Prime Distance 素数筛选
- 网易邮箱前端Javascript编码规范:基础规范
- socket编程中的一些问题(2)
- Linux系统yum服务器配置全攻略
- ora-30036
- Bugzilla客户端Deskzilla Lite
- 通过Java SE 7自带的监控服务(WatchService API)
- 项目流程(...)
- c# comboBox 的使用