小 A 有一个质数口袋,里面可以装各个质数。他从2开始,依次判断各个自然数是不是质数,如果是质数就会把这个数字装入口袋。
口袋的负载量就是口袋里的所有数字之和。
但是口袋的承重量有限,装的质数的和不能超过 L。给出 L,请问口袋里能装下几个质数?将这些质数从小往大输出,然后输出最多能装下的质数的个数,数字之间用换行隔开。
输入格式
一行一个正整数 L。
输出格式
将这些质数从小往大输出,然后输出最多能装下的质数个数,所有数字之间有一空行。
1.质数 ①不包括1 ②能否被某数整除
#include<stdio.h>
int main()
{
int i,j,l,s=0,count=0,f,m=1;
scanf("%d",&l);
for(i=2;;i++)
{
j=i-1;f=1;
for(j;j>1;j--)
{
if(i%j==0)
{
f=-1;
break;
}
}
if(f==1) //判断它是不是质数
{
if((s+i)<=l) //判断是不是在l内
{
printf("%d\n",i);
s+=i;
count++;
}
else //如果不在l内就不能进行了
{
break;
m=0;
}
}
if(m==0) break;
}
printf("%d",count);
return 0;
}