数论--HDU1262 寻找素数对【素数】
2018-03-01 11:52
295 查看
寻找素数对
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14663 Accepted Submission(s): 7357
[align=left]Problem Description[/align]哥德巴赫猜想大家都知道一点吧.我们现在不是想证明这个结论,而是想在程序语言内部能够表示的数集中,任意取出一个偶数,来寻找两个素数,使得其和等于该偶数.
做好了这件实事,就能说明这个猜想是成立的.
由于可以有不同的素数对来表示同一个偶数,所以专门要求所寻找的素数对是两个值最相近的.
[align=left]Input[/align]输入中是一些偶整数M(5<M<=10000).
[align=left]Output[/align]对于每个偶数,输出两个彼此最接近的素数,其和等于该偶数.
[align=left]Sample Input[/align]20 30 40
[align=left]Sample Output[/align]7 13
13 17
17 23
/* HDU 1262 寻找素数对 */ #include <stdio.h> #include <math.h> int isprime(int n) { if(n == 3) return 1; int temp, i; temp = n % 6; if(temp != 1 && temp != 5) return 0; temp = sqrt(n); for(i=3; i<=temp; i+=2) if(n % i == 0) return 0; return 1; } int main(void) { int m, p; while(scanf("%d",&m)!=EOF) { p = m / 2; //从一半开始 if(p % 2 == 0) p--; for(;;) { if(p <= 2) break; if(!isprime(p)) { p -= 2; continue; } if(isprime(m - p)) { printf("%d %d\n", p, m-p); break; } p -= 2; } } return 0; } //从中间开始试,找最接近的 //试除法不用考虑偶数了
相关文章推荐
- hdu1262 数论基础 寻找素数对
- hdu 1262 寻找素数对 数论 打表。
- hdu 1262 寻找素数对(数论:生成素数表+水题)
- hdu 1262 寻找素数对
- hdu 1262 寻找素数对 筛法
- HDOJ,数论简单入门题目,杭电1262,寻找素数对
- HDU 1262 寻找素数对 2098分拆素数和
- HDU1262——寻找素数对
- [水题]hdu 1262 寻找素数对
- Hdu-1262寻找素数对
- HDU 1262 寻找素数对(素数)
- HDU 1262 寻找素数对
- HDU 1262 寻找素数对
- HDU 1262 寻找素数对 素数水题
- hdu 1262 寻找素数
- hdu 1262 寻找素数对
- hdu 1262寻找素数对
- hdu-1262-寻找素数对
- hdu 1262 寻找素数对(STL)
- hdu 1262寻找素数对