优化思路:因为差值最小的两个数一定集中在中间,所以可以直接从中间开始分奇数个和偶数个来讨论
#include <iostream>
using namespace std;
int isPrime(int num){
    for(int i=2;i*i<=num;i++){
        if(num%i==0)
            return false;
    }
    return true;
}
int main() {
   int n;
   while(cin>>n){
       int min=n;
       int ans1,ans2;
        for(int i=2;i<=n/2;i++){
            for(int j=n-i;j>=i;j--){
                if(i+j==n&&isPrime(i)&&isPrime(j)){
                    if(j-i<min){
                        ans1=i;
                        ans2=j;
                        min=j-i;
                        break;
                    }
                }   
            }          
        }
    cout<<ans1<<endl;
    cout<<ans2<<endl;    
   }
}
// 64 位输出请用 printf("%lld")