Cod sursa(job #1935067)

Utilizator lucian666Vasilut Lucian lucian666 Data 21 martie 2017 23:33:07
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb


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

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

bitset <2000009> uz;
int prim[2000009], 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();

    int spprev = 0;
    int spcurent = 0;


    for(int i = 0 ;i<=n; ++i)
    {
        spcurent = spprev + sol[i];
        spprev = spcurent;
    }

    cout << spcurent;

    return 0;
}