2012年7月4日水曜日

AOJ Volume11 1172: Chebyshev's Theorem

エラトステネスの篩で素数テーブルを作成しておく。

 /************************
* 2012/06/30                     *
* AOJ Volume11 1172        *
* Chebyshev's Theorem    *
* crane                             *
*************************/


#include<iostream>
#include<cmath>
using namespace std;

#define MAX_N 246913

bool field[MAX_N];

int main(){

    field[0] = false;
    field[1] = false;
    for(int i=2; i<MAX_N; i++)    field[i] = true;

    for(int i=2; i<sqrt((double)MAX_N)+1; i++)
        if(field[i])
            for(int j=i*2; j<MAX_N; j+=i)
                field[j] = false;

    int n = 0;
    while(cin >> n, n){
        int count = 0;
        for(int i=n+1; i<=2*n; i++)
            if(field[i])
                count++;
        cout << count << endl;
    }
    return 0;
}

0 件のコメント:

コメントを投稿