Cod sursa(job #1935070)

Utilizator lucian666Vasilut Lucian lucian666 Data 21 martie 2017 23:35:52
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb


#include <iostream>
#include <fstream>
#include <cstring>
#include <algorithm>
#include <bitset>

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

bitset <2000009> uz;
int m;
int n;

bitset <2000009> sol;

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

int v[2000009];

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

    ciur();

    for(int i = 0 ;i<=n; ++i)
    {
         v[i] = v[i-1] + sol[i];
    }
    out << v[n];

    return 0;
}