HDU 寻找素数对
来源:互联网 发布:蒙古 欧洲 知乎 编辑:程序博客网 时间:2024/06/05 04:12
寻找素数对
Problem Description
哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.
做好了这件实事,就能说明这个猜想是成立的.
由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.
做好了这件实事,就能说明这个猜想是成立的.
由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.
Input
输入中是一些偶整数M(5<M<=10000).
Output
对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.
Sample Input
20 30 40
Sample Output
7 1313 1717 23---------------------------菜鸟篇:/*方法是:寻找 n/2 两边的素数并且和为 n */#include<stdio.h>#include<math.h>int right(int n);int left(int n);int main(){int n,temp,res,t,d;int le,ri;while(scanf("%d",&n)!=EOF){t=n;n>>=1;le=n;ri=n;temp = left(le);res = right(ri);while(1){d = res + temp;if(d==t)break;else if(d>t){le-=2;temp = left(le);}else{ri+=2;res = right(ri);}}printf("%d %d\n",temp,res);}return 0;}int right(int n){int limit;int i,j,flag;if((n&1)==0)n+=1;for(j=n;;j+=2){limit = sqrt(j)+1;flag=1;for(i=2;i<=limit;i++){if(j%i==0){flag=0;break;}}if(flag)return j;}return n;}int left(int n){int limit;int i,j,flag;if((n&1)==0)n-=1;for(j=n;;j-=2){limit = sqrt(j)+1;flag=1;for(i=2;i<=limit;i++){if(j%i==0){flag=0;break;}}if(flag)return j;}return 0;}------------------------------------------------高效篇:#include<stdio.h>int su(int x) //判断素数{ int i; for(i = 2;i*i<=x;i++) if(x%i==0&&x!=2) return 0; return 1;}int main(){ int n,i,a,b; while(scanf("%d",&n)!=EOF) { for(i = 1;i<=n/2;i++) if(su(i)&&su(n-i)) //一个比n/2大,一个比n/2小 { a = i; b = n-i; } printf("%d %d\n",a,b); } return 0;}
0 0
- HDU 寻找素数对
- HDU 1262 寻找素数对
- hdu 1262 寻找素数对
- HDU 1262 寻找素数对
- hdu-1262-寻找素数对
- hdu 1262 寻找素数对
- hdu 1262 寻找素数对
- hdu-1262-寻找素数对
- HDU 1262 寻找素数对
- hdu-1262-寻找素数对
- HDU 1262 寻找素数对
- 寻找素数对 HDU 1262
- hdu 1262寻找素数对
- HDU 1262 寻找素数对
- HDU 1262 寻找素数对
- hdu 1262 寻找素数对
- hdu 1262 寻找素数对
- HDU 1262 寻找素数对
- CountDownLatch和CyclicBarrier的区别,举例分析
- 欧拉函数,求小于等于n 的数里与 n 互质的数的个数
- c++ primer(第五版)笔记 第二章(2) 变量
- poj 3083 Children of the Candy Corn
- FFmpeg获取DirectShow设备数据(摄像头,录屏)
- HDU 寻找素数对
- block详解
- git提交本地代码
- 考研日记-7.29
- 关于C++中的虚拟继承的一些总结
- 文件上传漏洞-----图片马的剔除
- Servlet 第六课: Session的使用
- little error
- Choose a destination with a supported architecture in order to run on this device.