cpp
#include<bits/stdc++.h>
using namespace std;
int n,x;
long long sum=0;
int ans(int y)
{
for(int i=2; i<=sqrt(y); ++i) //判断是否是质数
{
if(y%i==0)
return 0;
}
return 1;
}
int main()
{
scanf("%d",&n);
if(n<2) //当n<2,此时无素数,输出0
{
printf("0\n");
return 0;
}
else if(n==2) //当n=2,有唯一素数2,输出2\n1\n
{
printf("2\n1\n");
return 0;
}
for(int i=2; i<=n; ++i)
{
if(ans(i))
{
printf("%d\n",i);
sum+=i;
x++;
}
if(sum+i>n)
{
printf("%d\n",x);
return 0;
}
}
return 0;
}
也可在代码中加入,将所有偶数排除,减少代码运算量
cpp
if(i%2==0 && i!=2)
continue;