hdu 4715
来源:互联网 发布:画图软件solidworks 编辑:程序博客网 时间:2024/05/22 16:38
题目
已知n,求两个素数(a,b),要求a-b=n,且(a+b)尽量小,如果不存在这样的(a,b),就输出"FAIL"
想法:
二分找出比n大的最小的素数,然后直接暴力
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define M 5000001typedef long long ll;bool vis[M];int num;int r;int prime[M/5];void init(){ memset(vis,0,sizeof(vis)); vis[0]=vis[1]=1; num=0; for(int i=2;i<=M;i++) { if(!vis[i]) { if(i<=1000000) { r=num; prime[num++]=i; } for(ll j=(ll)i*i;j<=(ll)M;j+=i) vis[j]=1; } }}int t,n;int main(){ init(); scanf("%d",&t); while(t--) { int p=0; scanf("%d",&n); if(n<0) p=1,n*=-1; int s=0,e=r+1,m; while(s<=e) { m=(s+e)>>1; if(prime[m]>=n) e=m-1; else s=m+1; } int tag=0; while(1) { if(s>=num) break; if(prime[s]-n>=0&&vis[prime[s]-n]==0) { if(!p) printf("%d %d\n",prime[s],prime[s]-n); else printf("%d %d\n",prime[s]-n,prime[s]); tag=1; break; } s++; // if(s<0) break; } if(!tag) printf("FAIL\n"); }}
- hdu 4715
- hdu 4715
- Hdu 4715
- HDU 4715题解
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- js规定范围内等比控制图片大小
- 2012 Asia Tianjin Regional Contest
- shell编程初步
- Head+First+设计模式读书心得(一)
- hdu 4714 Tree2cycle dp
- hdu 4715
- 字符串比较
- 健康
- GIS的19个研究方向
- linux字符设备驱动总结之:全自动创建设备及节点
- ACE_DLList双向链表
- 比较两个时间的大小和时间差
- dede自定义模型字段的调用
- 性能调优之后,进一步的验证和分析