10分求助
查看原帖
10分求助
991651
wangmingrui123456楼主2025/1/16 10:20
#include<bits/stdc++.h>
#define int long long
using namespace std;
bool is_prime(int x){
    if(x<2)return 0;
    for(int i=2;i*i<=x;++i)if(x%i==0)return 0;
    return 1;
}
int n,a,dp[1500],t[1500];
signed main(){
    scanf("%lld",&n);
    for(int i=1;i<=n;++i){
        if(is_prime(i))t[++a]=i;
    }
    for(int i=1;i<=n;i++){
		for(int j=t[i];j<=a;j++){
			dp[i]+=dp[i-t[i]];
		}
	}
    printf("%lld",dp[n]);
}
2025/1/16 10:20
加载中...