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