#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int N = 100+50;
bool isprime[N];
int prime[N/2],pn;
void getPrimes(int maxn)
{
pn = 0;
memset(isprime,true,sizeof(isprime));
isprime[0] = isprime[1] = false;
for(int i=2;i<=maxn;i++)
{
if(isprime[i]) prime[++pn] = i;
for(int j=1;j<=pn;j++)
{
if(i*prime[j]>maxn) break;
isprime[i*prime[j]] = false;
if(i%prime[j]==0) break;
}
}
return;
}
int main()
{
getPrimes(100);
for(int i=1;i<=pn;i++) cout << prime[i] << endl;
return 0;
}
线性筛(线性筛素数)【模版】
发布于 2021-08-22 26 次阅读
Comments 1 条评论