P5723 【深基4.例13】质数口袋

146 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

题目描述

小 A 有一个质数口袋,里面可以装各个质数。他从 22 开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。口袋的负载量就是口袋里的所有数字之和。但是口袋的承重量有限,不能装得下总和超过 LL(1 \le L \le {10}^51≤L≤105)的质数。给出 LL,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。 输入格式

一行一个正整数 LL。 输出格式

将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。 输入输出样例

输入 #1复制

100

输出 #1复制

2 3 5 7 11 13 17 19 23 9

#include<iostream>
using namespace std;
int main()
{
	int k;
	cin >> k;
	int sum=0,num=0,i=2,j,flag=0;
	while (sum <= k)
	{
		for (j = 2; j < i; j++)
		{
			if (i % j == 0)
				flag = 1;
		}
		if (flag == 0 )
		{
			sum += i;
			if (sum <= k)
			{
				num++;
				cout << i << endl;
			}
		}
		
		flag = 0;
		i++;
	}
	
	cout << num;
	return 0;
}