Cod sursa(job #1198056)

Utilizator lucian666Vasilut Lucian lucian666 Data 14 iunie 2014 13:33:59
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb



#include <fstream>
#include <bitset>
#include <algorithm>
#define NN 2000009

using namespace std;
ofstream out("ciur.out");


int n ;
int sol;

bitset < NN > uz;

void erat();

int main()
{
    ifstream in("ciur.in");

    erat();
    in >> n;

    for(int i=1;  i<=n ; i++)
        if( !uz[i]  )
            ++sol;

    out << sol + 1 << '\n';

    return 0;

}

void erat()
{
    uz[1] = 1;
    for( int i=3  ; i <=NN ; i+=2 )
    {
    uz[i-1] = 1;
        if( !uz[i] )
    {

        for( int j= 3 * i ; j<=NN ; j+= i << 1)
            uz[j] = 1;
    }

    }

}