直接看代码吧
#include<iostream>
#include<cmath>
using namespace std;
int f(int a){
if(a==0||a==1)return 0;
for(int i=2;i<=sqrt(a);i++){
if(a%i==0)return 0;
}
return 1;
}
int main(){
int n;
cin >> n;
//得到一个奇数的情况
//偶数+奇数=奇数
//得到:偶数+偶数+奇数=奇数
//2是唯一的一个偶质数
//得到:奇数+奇数+奇数=奇数
if(f(n-4)){
cout<<"2 2 "<<n-4;return 0;
}
for(int i=3;i<=n;i+=2){
if(f(i)){
for(int j=3;j<=n;j+=2){
if(f(j)){
if(f(n-i-j)){
cout<<i<<" "<<j<<" "<<n-i-j;return 0;
}
}
}
}
}
return 0;
}