声明:这个代码不是最优解,但是保证能过
请看代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,f=1,num=0,sum=0;//num是储存个数的,sum是判断素数的和是否大于n的
cin>>n;
for(int i=2;i<=n;i++)
{
for(int j=2;j<i;j++)
{
if(i%j==~0)//判断i是不是素数(编的时候不知道为什么等号和后面的字一直是黄色的,就加了个符号,做的时候不用加哦)
{
f=0;//是则f=0(1代表是素数,0代表不是)
}
}
if(f==1)//判断f是否等于1
{
sum+=i;//先把i储存起来,待会儿判断
if(sum>n)//判断sum+i是否大于n
{
break;//大于就跳出循环
}
cout<<i<<endl;//不大于就输出i
num++;//数量+1
}
f=1;//重置f
}
cout<<num;//输出数量
return 0;
}
觉得有用的点个赞吧