#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
const int maxn=100005;
bool is_not_prime[maxn];
long long prime[maxn], sum;
void init(){
memset(is_not_prime, false, sizeof(is_not_prime));
sum = 0;
is_not_prime[0] = is_not_prime[1] = true;
for (long long i = 2; i < maxn; i++) {
if (!is_not_prime[i])
prime[sum++] = i;
for (long long j = 0; i * prime[j] <= maxn && j < sum; j++) {
is_not_prime[i * prime[j]] = true;
if(i % prime[j] == 0)
break;
}
}
}
int main() {
init();
for(long long i = 0; i < sum; i++)
cout << prime[i] << " ";
cout << endl;
return 0;
}
线性素数筛法
最新推荐文章于 2023-01-20 23:15:00 发布