poj2689 素数距离(埃氏筛法分块筛+暴力枚举)
来源:互联网 发布:家庭理财记账软件 编辑:程序博客网 时间:2024/05/15 10:35
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<iostream>#include<algorithm>#include<stack>#include<queue>#include<vector>#include<set>#include<map>#include<string>using namespace std;typedef long long ll;typedef unsigned long long ull;const ll INFF=1e12;const int INF=0x7f7f7f7f;ll l,r;int cnt;int prim[50010];bool vis[1000010];ll prim2[1000010];void init(){ cnt=0; memset(vis,0,sizeof(vis)); for(int i=2;i<=50000;i++) { if(!vis[i]) { prim[cnt++]=i; for(ll j=i+i;j<=50000;j+=i) vis[j]=1; //printf("%d\n",i); } }}void init2(){ ll i,j,b; memset(vis,0,sizeof(vis)); for(i=0;i<cnt;i++) { b=l/prim[i]; while(b*prim[i]<l||b<=1) b++; for(j=b*prim[i];j<=r;j+=prim[i]) { if(j>=l) vis[j-l]=1; } } if(l==1) vis[0]=1;}void solve(){ init2(); int cntt=0; for(int i=0;i<=r-l;i++) { if(!vis[i]) { prim2[cntt++]=i+l; } } ll minn=INFF,maxx=-INFF; ll maxl,maxr,minl,minr; if(cntt<=1) { printf("There are no adjacent primes.\n"); } else { for(int i=0;i<cntt-1;i++) { if(prim2[i+1]-prim2[i]<minn) { minn=prim2[i+1]-prim2[i]; minl=prim2[i],minr=prim2[i+1]; } if(prim2[i+1]-prim2[i]>maxx) { maxx=prim2[i+1]-prim2[i]; maxl=prim2[i],maxr=prim2[i+1]; } } printf("%lld,%lld are closest, %lld,%lld are most distant.\n",minl,minr,maxl,maxr); }}int main(){ init(); while(scanf("%lld%lld",&l,&r)!=EOF) { solve(); } return 0;}
阅读全文
1 0
- poj2689 素数距离(埃氏筛法分块筛+暴力枚举)
- POJ2689 Prime Distance 素数距离
- poj2689--素数筛----筛两次
- poj2689 两次素数筛法
- poj2262 Goldbach's Conjecture(线性素数筛+暴力枚举)
- poj2689素数
- hdu5778 abs 素数筛法 暴力枚举
- Codeforces838A【枚举素数暴力】
- POJ2689:Prime Distance(大区间素数)
- hdu 5104 筛素数打表+暴力枚举
- HDU 5778 (压缩范围枚举暴力跑素数表)
- poj2689 素数二次筛选
- poj2689素数问题
- Poj2689【素数筛选】
- POJ2689 Prime distance 素数
- POJ2689 素数筛选
- 区间素数筛选 poj2689
- Prime Distance(poj2689变形的筛法素数)
- node公众号第三方模块,五分钟通过微信全网发布检测
- C#调用MySql数据库报错:KeyNotFoundException, 给定关键字不在字典中
- IDEA 调试技巧
- Android环境搭建
- 树状数组
- poj2689 素数距离(埃氏筛法分块筛+暴力枚举)
- HZDU 1008 Elevator
- 二叉树中的最大路径和
- zedboard qspi flash启动时,为什么program flash的加载速度很慢
- Android Studio中使用lambda表达式
- 图像特征提取
- C++/MFC-进程优先级
- 每天一个linux命令(50):crontab命令
- PhpExcel中文帮助手册|PhpExcel使用方法