萌新求助,只有80分。
#include<stdio.h>
int prime(int n);//判断是否是质数,返回1则为质数
int main() {
int L,i,j=0;
int sum=0;
scanf("%d",&L);
/*特殊数字处理*/
if(L<2){printf("0\n");return 0;}
else if(L==2){printf("2\n1\n");return 0;}
for(i=2; i<L;i++)
if(prime(i)) //若为质数
{
/*若加上下一个质数总和超过L,打印质数个数,跳出循环*/
if(sum+i>L)
{printf("%d",j); return 0;}
/*若不超过L,则输出质数*/
printf("%d\n",i);
sum+=i; //计算总和
j++; //j为质数个数
}
return 0;
}
int prime(int n){
int i;
/*若能被整除,则不为质数,返回0*/
for(i=2;i<n;i++)
if(n%i==0) return 0;
return 1;
}