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