Cod sursa(job #1754856)

Utilizator lucian666Vasilut Lucian lucian666 Data 8 septembrie 2016 20:27:29
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb


#include <iostream>
#include <fstream>
#include <bitset>

using namespace std;
#define dim 2000009
ofstream out("ciur.out");

int n;
bitset<dim> sol;
bitset<dim> uz;

void ciur()
{
    uz[1] = 1;
    for(int i = 2 ; i<=dim; ++i)
    {
        if(!uz[i])
        {
            sol[i] = 1;
            for(int j = ( i << 1); j<=dim; j+=i)
            {
                uz[j] = 1;
            }
        }
    }
}

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

    in >> n;

    ciur();
    sol[0] = 0;

    int soll = 1;
    for(int i = 3 ; i<=n; ++i)
    {
        if(sol[i])
        {
            ++soll;
        }
    }

    out << soll;

    return 0;
}