离大谱
查看原帖
离大谱
768958
haijun_楼主2023/3/12 11:30

把2单独拿出来就过了?

#include<bits/stdc++.h>
using namespace std;
bool pd(int x){
	bool flag=1;
	for(int i=2;i*i<=x;i++){
		if(x%i==0){
			flag=0;break;
		}
	}
	return flag;
}
int main(){
	int n;
	cin>>n;
	if(pd(n-4)){
		cout<<"2 2 "<<n-4;
		return 0;
	}
	else{
		for(int i=3;i<=n;i++){
			if(pd(i)){
				for(int j=3;j<=n;j++){
					if(pd(j)){
						for(int k=n;k>2;k--){
							if(pd(k) and i+j+k==n){
								cout<<i<<" "<<j<<" "<<k;
								return 0;
							}
						}
					}
				}
			}
		}
	}
	
}
2023/3/12 11:30
加载中...