#include <iostream>
using namespace std;
bool a[10005];
void eratosthenes(bool*a,int n)
{
a[1]=false;//a[0]不用
for(int i=2;i<=n;i++)
a[i]=true;//默认都是素数
int p=2;//第一个筛孔
int j=p*p;
while(j<=n)
{
while(j<=n)
{
a[j]=false;//素数的倍数一定不是素数
j+=p;
}
p++;
while(!a[p])
p++;
j=p*p;
}
}
这么写感觉更复杂了
大佬可以分享更简单的解法?