提交时间:2024-05-12 11:26:36
运行 ID: 146525
#include<iostream> #include<cmath> using namespace std; int dp[201]; bool f[201]; void fprime(int n){ f[0]=true; f[1]=true; for(int i=2;i<=n;i++){ if(f[i]==false){ for(int j=i*2;j<=n;j+=i){ f[j]=true; } } } } int main(){ int n; cin>>n; fprime(n); dp[0]=1; for(int i=2;i<=n;i++){ for(int j=1;j<=n;j++){ if(f[i]==false && j>=i){ dp[j]=dp[j]+dp[j-i]; } } } cout<<dp[n]<<endl; return 0; }