结果对的但是TLE了,咋让他停下来?
查看原帖
结果对的但是TLE了,咋让他停下来?
1051310
wang6w6楼主2024/7/5 14:39
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n;
ll ans[4],k=0;
ll zs(ll m){
	for(ll i=2;i*i<=m;i++){
		if(m%i==0){
			return 0;
		}
	}
	return 1;
}
void dfs(ll t){
	ll p=0;
	if(t>3){
		for(ll i=1;i<=3;i++){
			p=p+ans[i];
		}
		if(p==n){
			cout<<ans[1]<<" "<<ans[2]<<" "<<ans[3]<<endl;
			k=1;
		}else{
			return ;
		}
	}
	for(ll i=2;i<=n;i++){
		if(zs(i)==1){
			ans[t]=i;
			dfs(t+1);
			if(k==1){
				return ;
			}else{
				ans[t]=0;
			}
		}
	}
}
int main(){
	cin>>n;
	dfs(1);
	return 0;
}
2024/7/5 14:39
加载中...