Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<algorithm>#include<cstring>#define ms(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=1e6;int p[maxn];bool f[maxn+10];void init() {ms(f,0),p[0]=0;for(int i=2;i<=maxn;i++) {if(!f[i])p[++p[0]]=i;for(int j=1;j<=p[0] && p[j]<=maxn/i;j++) {f[i*p[j]]=1;if(i%p[j]==0)break;}}}int main() {init();int n;while(~scanf("%d",&n)) {for(int i=1;i<=p[0];i++) {if(!f[n-p[i]]) {printf("%d %d\n",p[i],n-p[i]);break;