素数筛选打表,然后从二分之一的地方开始向两边遍历,找到都是素数的数就是想要找的。
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
bool p[10001];
int main()
{
int i,j,n,N;
memset(p,1,sizeof(p));
p[0]=p[1]=1;
for(i=2; i<10000; i++)
{
for(j=2; i*j<10000; j++)
p[i*j]=0;
}
while(~scanf("%d",&n))
{
N=n/2;
for(i=0; i<N; i++)
if(p[N-i]==1&&p[N+i]==1)
{
printf("%d %d\n",N-i,N+i);
break;
}
}
return 0;
}