• 游客,您好! Include社区于2021.5.26迁移至新版社区,用户数据丢失,欢迎注册! 补偿政策

疑问

解决方案
看看题解:ROFLMAO:
C++:
#include <bits/stdc++.h>
using namespace std;
int su[201],f[201];
bool pan(int x)
{
    for(int i=2;i<=sqrt(x);i++)
        if(x%i==0) return 0;
    return 1;
}
int main()
{
    int n;
    while(cin>>n)
    {
        int num=0;
        for(int i=2;i<=n;i++)
            if(pan(i))
                su[++num]=i;       
        memset(f,0,sizeof(f));
        f[0]=1;
        for(int i=1;i<=num;i++)
        {
            for(int j=su[i];j<=200;j++)
                f[j]+=f[j-su[i]];
        }
        cout<<f[n]<<endl;
    }
    return 0;
}
看看题解:ROFLMAO:
C++:
#include <bits/stdc++.h>
using namespace std;
int su[201],f[201];
bool pan(int x)
{
    for(int i=2;i<=sqrt(x);i++)
        if(x%i==0) return 0;
    return 1;
}
int main()
{
    int n;
    while(cin>>n)
    {
        int num=0;
        for(int i=2;i<=n;i++)
            if(pan(i))
                su[++num]=i;       
        memset(f,0,sizeof(f));
        f[0]=1;
        for(int i=1;i<=num;i++)
        {
            for(int j=su[i];j<=200;j++)
                f[j]+=f[j-su[i]];
        }
        cout<<f[n]<<endl;
    }
    return 0;
}
 
  • Like
反馈: 脱缰的小马
解决方案

在线会员

现在没有会员在线。