题目描述
内容分析
这道题主要考察的是质数判断和求和问题,难度不大。
唯一可能会出现的可能是语文问题…
大家注意判断条件为:不能装得下总和超过L的口袋,意思是口袋里的所有质数相加的总和不能超过L(可以等于L),如果超过L则不能再装入口袋
代码部分
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
//输入一个数字
cin >> n;
if (n == 1)
{
cout << 0 << endl;
}
else if (n ==2)
{
cout << n << endl;
cout << 1 << endl;
}
else
{
int count1 = 0;
int sum = 0;
for (int i = 2; i <= n; i++)
{
int count = 0;
for (int j = 2; j <= sqrt(i); j++)
{
if (i % j == 0 && i != 2)
{
//不是质数
count++;
break;
}
}
if (count == 0 || i == 2)
{
sum += i;
if (sum <= n)
{
count1++;
cout << i << endl;
}
else
{
break;
}
}
}
cout << count1 << endl;
}
return 0;
}