题解
2026-06-22 20:10:31
发布于:广东
1阅读
0回复
0点赞
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int N = 20005;
bool isp[N];
int p[N], cnt;
int dp[6000005];
int main()
{
int x, y, m;
cin >> x >> y >> m;
for (int i = 2; i < N; i++) isp[i] = 1;
for (int i = 2; i * i < N; i++)
{
if (isp[i])
{
for (int j = i * i; j < N; j += i) isp[j] = 0;
}
}
int sum = 0;
for (int i = x; i <= y; i++)
{
if (isp[i])
{
p[cnt] = i;
sum += i;
}
}
if (sum > m) sum = m;
for (int i = 1; i <= cnt; i)
{
for (int j = sum; j >= p[i]; j--)
{
if (dp[j - p[i]] + p[i] > dp[j]) dp[j] = dp[j - p[i]] + p[i];
}
}
cout << dp[sum];
return 0;
}
这里空空如也






有帮助,赞一个