求助
查看原帖
求助
1392551
ruo_aqueous楼主2025/1/13 10:01
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define for1(i,a,b) for(ll i=(ll)a;i<=(ll)b;++i)
#define for0(i,a,b) for(ll i=(ll)a;i>=(ll)b;--i)
#define lb (ll)bool
ll dp[210], n;
ll z[110], l;
bool c[110];
const int N = 200;
int main (){
	for1 (i, 2, N){
		if (!c[i]){
			z[++ l] = i;
			for (ll j = i*i;j <= N;j += i) c[j] = 1;
		}
	}
	dp[0] = 1;
	for1 (j, 1, l){
	for1 (i, z[j], N){
		dp[i] += dp[i-z[j]];
	}}
	while (cin >>n){
		cout <<dp[n] <<'\n';
	}
	return 0;
}

2025/1/13 10:01
加载中...