Problem Description
验证哥德巴赫猜想:任何充分大(>=4)的偶数都可以用两个素数之和表示。
Input
输入一个偶数n。(2<n<=10000)
Output
找到a、b使得 n=a+b
其中a、b为两个素数,且a<=b。
Sample Input
4
100
Sample Output
2 2
3 97
1 #include2 3 #include 4 5 using namespace std; 6 7 int prime(int m) 8 9 {10 11 int i,n;12 13 if(m==1)return 0;14 15 n=(int)sqrt((double)m);16 17 for(i=2;i<=n;i++)18 19 if(m%i==0)return 0;20 21 return 1;22 23 }24 25 int main()26 27 {28 29 int count,i,number;30 31 count=0;32 33 while(cin>>number)34 35 {36 37 for(i=2;i<=number/2;i=i+1)38 39 if(prime(i)&&prime(number-i))40 41 {42 43 cout< <<" "< <
其他代码:
1 #include2 #include 3 int prime (int m) 4 { 5 int r = m/2; 6 for (int i = 2; i <= r; i++) 7 if (m % i == 0) 8 return 0; 9 return 1;10 }11 int main()12 {13 int n,i;14 while(~scanf("%d",&n))15 {16 for(i=2;i<=n/2;i++)17 if(prime(i)&&prime(n-i)){18 printf("%d %d\n",i,n-i);19 break;20 }21 }22 return 0;23 }