1、素数筛法,打表;
2、从中间向两边寻找。
#include<iostream>
using namespace std;
int main()
{
bool p[10001];
int m,i,j;
memset(p,0,sizeof(p));
for(i=2;i<=10000;i++) //筛出素数,打表
if(!p[i])
for(j=i+i;j<=10000;j+=i)
p[j]=1;
while(cin>>m)
{
for(j=m/2;j<m;j++) //从中间向两边查找
if(!p[j] && !p[m-j])
{
cout<<m-j<<" "<<j<<endl;
break;
}
}
return 0;
} 原文地址:http://blog.csdn.net/a809146548/article/details/44176329