#include <bits/stdc++.h>
using namespace std;
bool prime[100010];
void make() {
memset(prime,1,sizeof(prime));
for(int i=2;i<100000;i++)
for(int j=i+i;j<100000;j+=i) prime[j]=false;
}
int main(void) {
int l,ans=1;
cin>>l;
for(int i=2;i<=100000;i++) {
if(prime[i]&&l>=prime[i]) {
printf("%d\n",i);
ans++;
l-=i;
}
else if(l<i) break;
}
printf("%d",ans);
return 0;
}
为什么这个代码不行?循环直接就跳出了
求大佬帮助