20 30 40
7 13 13 17 17 23
#include <stdio.h> #define MAX 10100 bool notPrime[MAX] ; //int prime[MAX] ; int main() { for(int i = 2 ; i < MAX ; ++i) { for(int j = 2 ; j*i < MAX ; ++j) { notPrime[i*j] = true ; } } notPrime[1] = true ; int n ; while(~scanf("%d",&n)) { int mid = n/2 ; for(int i = mid ; i < n ; ++i) { if(!notPrime[i]) { for(int j = mid ; j > 1 ; --j) { if(!notPrime[j]) { if(i+j==n) { printf("%d %d\n",j,i); goto here ; } else if(i+j<n) { break ; } } else if(i+j<n) { break ; } } } } here: ; } return 0 ; }
原文地址:http://blog.csdn.net/lionel_d/article/details/44259429