在编译器上过了,洛谷上没过
#include<iostream>
#include<algorithm>
using namespace std;
int a[100005]={};
long long f[100005]={};
bool by(int x)
{
for(int i=2;i*i<=x;i++)
if(x%i==0&&x!=i)
return true;
}
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
int n,anti=0,unity=0,ass=0;
bool c=false;
cin>>n;
for(int i=2;i<=n;i++)
{
if(n%i==0)
anti++;
}
for(int i=2;i<=n;i++)
{
c=by(i);
if(c==false)
a[i]+=i;
}
f[0]=1;
for(int i=1;i<=n;i++)
{
if(a[i]!=0)
for(int j=i;j<=n;j++)
f[j]+=f[j-a[i]];
}
cout<<f[n];
}