int main () {
int a,b=0,n,i,j,k=0,sum=0;
scanf("%d",&n);
for(j=2;sum<=n;j++)
{for(a=0,i=2;i*i<=j;i++)
if(j%i==0) a++;
if(a==0) {k=j;
sum+=k;
if(sum>n) ;
else{ printf("%d\n\n",j);
b++;}
}
}printf("%d",b);
}
这么改下试试,供参考:
#include <stdio.h>
int main()
{
int a, b = 0, n, i, j, k = 0, sum = 0;
scanf("%d", &n);
for (j = 2; ; j++) //(j = 2; sum <= n; j++)
{
for (a = 1, i = 2; a && i * i <= j; i++)//(a = 0, i = 2; i * i <= j; i++)
if (j % i == 0) a = 0; //a++;
if (a) { //(a == 0)
//k = j;
sum += j;
if (sum > n) break; //修改
//else {
printf(b++ == 0 ? "%d" : "\n%d", j);
//}
}
}
printf(n <= 1 ? "%d" : "\n%d", b); //修改
return 0;
}
有个疑问 不是从22 开始吗?