南邮 OJ 2064 哥德巴赫猜想
来源:互联网 发布:vfp 编程100以内的质数 编辑:程序博客网 时间:2024/06/13 07:33
哥德巴赫猜想
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 96 测试通过 : 40
总提交 : 96 测试通过 : 40
比赛描述
在1742年,德国的一位业余数学家哥德巴赫给欧拉写信,在信中给出了如下猜想:
任何一个大于4的偶数,都可以写成两个素数之和;
这个被誉为“数学皇冠上的明珠”的定理到现在都还没有被证明或证伪,自然激起了yuman的极大兴趣,他现在想通过编程来验证该猜想在小范围里的正确性,你能帮帮他吗?
输入
先输入一个正整数T,表示有T组样例(1<=T<=1000)
对于每一个测试样例,输入一个正整数n (6<=n<=100000,且n为偶数)
输出
对于每个测试样例,如果存在这样的两个素数a,b,则按升序输出两个素数,中间以一个空格分隔,另外,如果这样的a,b有多对满足,则输出(b-a)最大的那对;
如果不存在这样的素数,则输出"Wrong"(不包括引号)
样例输入
2
8
20
样例输出
3 5
3 17
题目来源
yuman
#include<iostream>#define MAX_N 100001bool isPrime[MAX_N];int main(){int t,n,i,j;memset(isPrime,1,sizeof(isPrime));isPrime[0]=isPrime[1]=0;isPrime[2]=1;for(i=2;(i<<1)<MAX_N;i++){isPrime[i<<1] = 0;}for(i=3;i<MAX_N;i+=2){if(isPrime[i]){for(j=(i<<1);j<MAX_N;j+=i){isPrime[j] = 0;}}}scanf("%d",&t);while(t--){scanf("%d",&n);for(i=2;(i<<1)<=n;i++){if(isPrime[i] && isPrime[n-i]){break;}}if((i<<1)<=n){printf("%d %d\n",i,n-i);}else{printf("Wrong\n");}}}
0 0
- 南邮 OJ 2064 哥德巴赫猜想
- 南邮NOJ 哥德巴赫猜想
- OJ刷题之《验证哥德巴赫猜想》
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想。
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 哥德巴赫猜想
- 【读书札记】SQL笛卡尔积的运用
- Java基础-IO-字符输入输出流(笔记)
- MBSFN参考信号设计
- HDU 3753 Alignment of Code 字符串对其 stl
- cocos2dx-多点触控
- 南邮 OJ 2064 哥德巴赫猜想
- 8月8日正则表达式详解
- Caffe学习:Loss
- SecureCRT中文显示乱码
- Android Context 是什么?
- 南邮 OJ 2066 好奇的奥利安娜
- Adobe Dreamweaver CS6 下载及破解教程
- 类与对象(一)
- Parcelable和Serializable的区别