Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
146525 | 吴悠 | 质数和分解 | C++ | 通过 | 100 | 0 MS | 252 KB | 454 | 2024-05-12 11:26:36 |
#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; }