Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 36797 | Accepted: 14102 |
Description
Every even number greater than 4 can be
written as the sum of two odd prime numbers.
8 = 3 + 5. Both 3 and 5 are odd prime numbers.
20 = 3 + 17 = 7 + 13.
42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23.
Input
Output
Sample Input
8 20 42 0
Sample Output
8 = 3 + 5 20 = 3 + 17 42 = 5 + 37
/*****************************************************/ /**** POJ 2262 Goldbach's Conjecture ******/ /**** Wangguoliang @Greenday ******/ /**** 2014-5-12 ******/ //此题很水但是却超时了两次,都是一些小的细节,感觉主要是我的基本功还是不扎实 //上次省赛选拔就能跪在了while(1)上。。。当时自己彻底无语了 #include<stdio.h> int Jprime(int n)//判断是否为素数 { int i; for(i=2;i*i<=n;i++)//刚开始用的是i<=n/2超时两次,汗。。。 if(n%i==0) return 0; return 1; } int main() { int n,i,j; int flag; while(scanf("%d",&n),n) { flag=0; //int maxi=0,maxj=0; for(i=3;i<=n/2;i+=2) { j=n-i; if(Jprime(j)&&Jprime(i))//如果ij都为素数,则打印输出 { flag=1; /*if(j-i>maxj-maxi) //求出j-i值最大的一组数据 { maxi=i; maxj=j; } */ printf("%d = %d + %d\n",n,i,j);//第一次符合的数据肯定是差值最大的,此时就直接break; break; } } if(!flag) printf("Goldbach's conjecture is wrong.\n"); } return 0; }