#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; }