哥德巴赫猜想认为“每一个大于2的偶数,都能表示成两个质数之和”。
给定一个大于2的偶数N,你能找到两个质数P和Q满足P<=Q并且P+Q=N吗?
Input
一个偶数N(4 <= N <= 1000000)
Output
输出P和Q。如果有多组解,输出P最小的一组。
Sample Input
10
Sample Output
3 7
.......我还以为是啥数学题,结果是水题啊
1 #include <iostream> 2 #include <stdio.h> 3 #include <math.h> 4 using namespace std; 5 6 int Su(int x) 7 { 8 int t=sqrt(x); 9 for (int i=2;i<=t;i++) 10 { 11 if (x%i==0) 12 return 0; 13 } 14 return 1; 15 } 16 17 int main() 18 { 19 int n; 20 while (scanf("%d",&n)!=EOF) 21 { 22 int ok=0; 23 int tmp=n/2; 24 for (int i=2;i<=tmp;i++) 25 { 26 if (Su(i)&&Su(n-i)) 27 { 28 ok=i; 29 break; 30 } 31 } 32 if (ok) 33 printf("%d %d ",ok,n-ok); 34 } 35 return 0; 36 }