思路哪里有问题
查看原帖
思路哪里有问题
1021654
wwwzne楼主2023/10/17 20:01
#include<bits/stdc++.h>
using namespace std;
bool ss[1005];
int dp[1005];
int main(){
	ss[0]=true;
	ss[1]=true;
	for(int i=2;i<=1001;i++){
		if(!ss[i]){
			//ss[i]=true;
			for(int j=i*i;j<=1001;j+=i){
				//cout<<j;
				ss[j]=true;
			}
		}
	}
	int T;
	cin>>T;
	dp[0]=1;
	for(int i=2;i<=T;i++){
		for(int j = 0; j <= i; j++){
			if(ss[j]==false){
				dp[i]+=dp[i-j];	
				cout<<i<<" "<<j<<" "<<i-j<<" "<<dp[i-j]<<endl;
			}
		}
	}
	//cout<<dp[3]<<endl;
	cout<<dp[T];
	return 0;
}
2023/10/17 20:01
加载中...