#include <iostream>
#include <cstdio>
#include <cmath>
#include <vector>
using namespace std;
#define siz 10000001
typedef long long ll;
int status[siz+5];
vector <int> prime;
void seive(){
int i,j,sqrtN;
for( i = 4; i <= siz; i+=2 ) status[i] = 1;
status[0]=status[1]=1;
sqrtN = int(sqrt((double)siz));
for(i=3;i<=sqrtN;i+=2){
if(status[i]==0){
for(j=i*i;j<=siz;j+=(i+i)){
status[j]=1;
}
}
}
for(int i=0;i<=siz;i++){
if(status[i]==0) prime.push_back(i);
}
}
int main()
{
ll n;
seive();
for(int i=0;i<20;i++)
cout<<prime[i]<<endl;
return 0;
}
Friday, November 2, 2012
Sieve of Eratosthenes
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment