特殊小口袋Plus-题解

描述

小王同学 有一个质数口袋,里面可以装各个质数。他从 2 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。

口袋的负载量就是口袋里的所有数字之和。

但是口袋的承重量有限,装的质数的和不能超过 L。给出 L,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数的个数,数字之间用换行隔开。

输入描述

一行一个正整数 L。

输出描述

将这些质数从小往大输出,然后输出最多能装下的质数个数。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<bits/stdc++.h> 
using namespace std;
bool prime(int n){
int tmp = sqrt(n);
for(int i = 2;i<=tmp;i++){
if(n%i == 0){
return 0;
}
}
return 1;
}
int main(){
int n,cnt = 0;
cin >> n;
int sum = 0;
for(int i = 2;;i++){
if(prime(i)){
if(sum+i<=n){
sum += i;
cout << i << endl;
cnt++;
}else{
break;
}
}
}
cout << cnt;
}

特殊小口袋Plus-题解
https://chenxi-tijie.pages.dev/2025/07/特殊小口袋Plus-题解/
作者
chenxi
发布于
2025年7月5日
许可协议