提交记录
代码:
#include<bits/stdc++.h>
using namespace std;
int prime[3005],flag[20005],len=0;
void pr(int n){
for(int i=2;i<=n;i++){
if(flag[i]==0) prime[++len]=i;
for(int j=2;j<=len && i*prime[j]<=n;j++){
flag[i*prime[j]]=1;
}
}
}
int main(){
int n;
scanf("%d",&n);
pr(n);
if(flag[n-4]==0){
printf("2 2 %d",n-4);
return 0;
}
for(int i=2;i<=len && prime[i]<=n/3;i++){
for(int j=i;j<=len && prime[j]<=(n-prime[i])/2;j++){
if(flag[n-prime[i]-prime[j]]==0) printf("%d %d %d",prime[i],prime[j],n-prime[i]-prime[j]);
return 0;
}
}
}
AC必关!