[C++] 純文本查看 復制代碼
#include<iostream>
#include<cstdio>
#include<vector>
#include<time.h>
#define n 1000000000
using namespace std;
bool nt_prime[n+100];
vector<int> prime;
int main()
{
int st = clock();
prime.push_back(2);prime.push_back(3);
for(int i = 6 ; i <= n ; i+=3)
nt_prime = true;
for(int i = 5, ii=2 ; i <= n ; i+=ii, ii=6-ii)
if(!nt_prime)
{
prime.push_back(i);
for(int k=n/i, j=i*k ; k>=i ; k--,j-=i)
if(!nt_prime[k])
nt_prime[j] = true;
}
int ed = clock();
cout << "time = " << (ed-st)/(double)CLOCKS_PER_SEC << endl;
for(int i = 0 ; i < 100 ; i++)
printf("%d,", prime);
while(1);
}