代码如下:
#include<bits/stdc++.h>
#include<stdio.h>
using namespace std;
int main()
{
int j=0,l,flag=0,n,sum=0,a[1000];
scanf("%d",&l);
for(n=2;sum<l;n++)
{
for(int i=2;i<n;i++)
{
if(n%i==0) //不是质数标记flga=1同时退出此循环
{
flag=1;
break;
}
else flag=0;
}
if(flag==0)//如果是质数 进行相应操作
{
sum+=n;
a[j]=n;
j++;
}
}
int num=j;//循环结束出来时j的值比实际的值多加了1但由于j从零开始 所以此时j表示个数
for(j=0;j<num;j++)
printf("%d\n",a[j]);
printf("%d",num);
return 0;
}