首页 > 代码库 > 武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)例题4.18

武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)例题4.18

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 #include <iostream> 2  3 #include<math.h> 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<<i<<" "<<number-i<<endl;44 45                                      break;46 47                             }48 49          }50 51          return 1;52 53 }

其他代码:

 1 #include<stdio.h> 2 #include<math.h> 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 }

 

武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)例题4.18