知识点:质数判断方法。
#include<iostream>
using namespace std;
int zhishu(int x){ //判断是否为质数
for(int i=2;i*i<=x;i++){ //对2到根号x求余,减少运算量
if(i%2==0&&i!=2) continue; //偶数肯定是非质数,这步是优化
if(x%i==0)return 0;
}
return 1;
}
int main(){
int i,L,j,sum=0,cnt=0;
cin>>L;
for(i=2;i<L&&sum<L;i++){
if(zhishu(i)==1){
sum+=i;
if(sum<=L){
cout<<i<<endl;
cnt++; //计数
}
}
}
if(L>2)cout<<cnt<<endl; //由题意,注意范围还有1,2,要不然过不全
else if(L==2)cout<<2<<endl<<1<<endl;
else if(L==1)cout<<0<<endl;
return 0;
}
如果本文对您有帮助,可不可以给萌新点一个赞,鼓励小萌新坚持写博客的热情!
本文地址:https://blog.csdn.net/qq_44491991/article/details/107287907
如对本文有疑问, 点击进行留言回复!!
L - Cat VS Dog HDU - 3829(最大独立集)
M - Jamie‘s Contact Groups POJ - 2289(二分 + 多重匹配)
H - Antenna Placement POJ - 3020(最小边覆盖)
Unity组件【Camera && Flare Layer】
网友评论