为什么我会错啊?!!!
查看原帖
为什么我会错啊?!!!
846041
__xxy_free_ioi__楼主2024/5/12 17:39

有谁能帮帮我。。。

#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n, p;
int prime[201];
int dp[201];
bool isprime[201];
void is_prime(int n) {
	for (int i = 2; i <= n; i++) {
		if (isprime[i] == 0) prime[++p] = i;
		for (int j = 1; j <= p && i * prime[j] <= n; j++) {
			isprime[i * prime[j]] = 1;
			if (i % prime[j]) break;
		}
	}
}
int main() {
	is_prime(200);
	dp[0] = 1;
	for (int i = 1; i <= p; i++) {
		for (int j = prime[i]; j <= 200; j++) {
			dp[j] += dp[j - prime[i]];
		}
	}
//	cout << p << '\n';
	while (cin >> n) {
		cout << dp[n] << '\n';
	}
    return 0;
}

2024/5/12 17:39
加载中...