题解 | #筛选法求素数#
筛选法求素数
https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a
#include <iostream>
using namespace std;
int main() {
int a;
while (cin >> a) { // 注意 while 处理多个 case
int m[101]={0};
for(int i=2;i<=a;i++)
{
m[i]=i;
}
for(int i=2;i<=a;i++)
{
for(int j=(i+1);j<=a;j++)
{
//如果m[i]已经是0了,那么拿来做1%0会导致超时等问题。
if(m[i]!=0 && j%m[i]==0)
{
m[j]=0;
}
}
}
int cnt=0;
for(int i=2;i<=a;i++)
{
if(m[i]!=0)
{
cout<<m[i]<<" ";
cnt++;
}
}
cout<<endl;
cout<<a-cnt-1;
}
}
// 64 位输出请用 printf("%lld")
注意对于取余的那个后面的数字不能是0,记得加个判断