#include <bits/stdc++.h>
using namespace std;
const int MAX = 100000000; // 10^8
const int LMT = 10000; // sqrt(MAX)
int _c[(MAX>>6)+1];
vector<int> primes;
#define IsComp(n) (_c[n>>6]&(1<<((n>>1)&31)))
#define SetComp(n) _c[n>>6]|=(1<<((n>>1)&31))
void prime_sieve() {
for (int i = 3; i <= LMT; i += 2)
if (!IsComp(i))
for (int j = i*i; j <= MAX; j += i+i)
SetComp(j);
primes.push_back(2);
for (int i=3; i <= MAX; i += 2)
if (!IsComp(i))
primes.push_back(i);
}
int main()
{
prime_sieve();
for(int i=0;i<primes.size();i++) cout<<primes[i]<<endl;
}
using namespace std;
const int MAX = 100000000; // 10^8
const int LMT = 10000; // sqrt(MAX)
int _c[(MAX>>6)+1];
vector<int> primes;
#define IsComp(n) (_c[n>>6]&(1<<((n>>1)&31)))
#define SetComp(n) _c[n>>6]|=(1<<((n>>1)&31))
void prime_sieve() {
for (int i = 3; i <= LMT; i += 2)
if (!IsComp(i))
for (int j = i*i; j <= MAX; j += i+i)
SetComp(j);
primes.push_back(2);
for (int i=3; i <= MAX; i += 2)
if (!IsComp(i))
primes.push_back(i);
}
int main()
{
prime_sieve();
for(int i=0;i<primes.size();i++) cout<<primes[i]<<endl;
}
No comments:
Post a Comment