#include <stdio.h>
#include <
string.h>
#define MAX 0x7fffffff
#define M 10000
bool isPrime[M+
1];
void primeAdd()
{
memset(isPrime,true,
sizeof(isPrime));
for(
int i=
2;i<=M/
2;i++)
//i in[2,M/2]
{
if(isPrime[i])
//if i is prime than i*k k in[2,3....] is not prime
{
for(
int j=i<<
1;j<=M;j+=
i)
{
isPrime[j]=
false;
}
}
}
}
void run()
{
}
int main(
int argc,
char *
argv[])
{
#ifdef __LOCAL
freopen("in.txt",
"r",stdin);
#endif
primeAdd();
int n,mid;
while(scanf(
"%d",&n) !=
EOF)
{
mid = n/
2;
while(mid>=
2)
{
if(isPrime[mid] && isPrime[n-
mid])
{
printf("%d %d\n",mid,n-
mid);
break;
}
mid--
;
}
}
return 0;
}
转载于:https://www.cnblogs.com/lk1993/archive/2013/05/20/3089908.html