POJ 2689 Prime Distance
来源:互联网 发布:ben carson 知乎 编辑:程序博客网 时间:2024/05/16 16:21
素数的二次筛选。
素数的筛选,数据比较大,不能用常用的方法。因为最大数据是20亿,开根号后就为50000左右,把5万以下的素数表打出,再二次筛选就可以了。
开始的时候把函数写在外面超时,写进去以后就0ms过,这个想不通。。。
AC代码:
#include<iostream>#include<cstring>#include<cmath>#include<cstdio>#include<algorithm>using namespace std;int q[6008],q2[200000];bool w[50008],prime[1000008];int n,m,ant;int main(){ int i,j,sum; int minn,minl,minr,maxx,maxl,maxr; q[1]=2; ant=2; memset(w,0,sizeof(w)); for(i=3; i<=50000; i+=2) { if(w[i] == 0) q[ant++]=i; for(j=1; j<ant && q[j]*i < 50000; j++) { w[i*q[j]] = 1; if(!(i%q[j])) break; } } //printf("ant = %d\n",ant); while(~scanf("%d%d",&n,&m)) { minn=99999999; maxx=-99999999; memset(prime,0,sizeof(prime)); for (i=1; i < ant; i++) { int s,t; s=n/q[i]; t=m/q[i]; for (j=s; j<=t; j++) if (j>1 && j*q[i] >= n) prime[j*q[i] - n]=1; } if(n == 1) prime[0]=1; int ans=1; for(i=0; i<=m-n; i++) { if(prime[i] == 0) { q2[ans++]=i+n; } } if(ans <= 2) printf("There are no adjacent primes.\n"); else { for(i=1; i<ans-1; i++) { if(q2[i+1]-q2[i] < minn) { minn=q2[i+1]-q2[i]; minl=q2[i]; minr=q2[i+1]; } if(q2[i+1]-q2[i] > maxx) { maxx=q2[i+1]-q2[i]; maxl=q2[i]; maxr=q2[i+1]; } } printf("%d,%d are closest, %d,%d are most distant.\n",minl,minr,maxl,maxr); } } return 0;}
路途中。。。。
- poj 2689 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
- POJ 2689 Prime Distance
- poj 2689 Prime Distance
- poj 2689 Prime Distance
- [POJ 2689] Prime Distance
- POJ 2689 Prime Distance
- poj 2689Prime Distance
- poj 2689 Prime Distance
- POJ 2689 Prime Distance
- POJ 2689 Prime Distance
- poj 2689 Prime Distance
- POJ 2689 Prime Distance
- 文本框回车提交
- EJB到底是什么
- JS刷新 当前页面 的经验分享
- 如何使用Box2D和Cocos2D制作一款像Fruit Ninja一样的游戏
- 获取查询界面的返回的条件
- POJ 2689 Prime Distance
- ios学习笔记之CKCalendar汉化
- XMl的初步认识
- MFC中CDC的使用
- 多屏时代: 社交媒体与电视如何共演一场“好戏”
- 三. ServerSocket 用法详解(二)
- PHP中文汉字验证码
- 关于如何将Sipdroid导入到eclipse的教程(解决出错问题)
- 基于mina服务器框架在android客户端接中文收不到消息以及发送不出中文的的问题