Cod sursa(job #2512683)

Utilizator XsoundCristian-Ioan Roman Xsound Data 21 decembrie 2019 13:06:05
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <bitset>
#define Nmax 2000005
using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

int n, contor;

bitset < Nmax > b;
void ciur ();

int main()
{
    fin >> n;

    ciur();

    for ( int i = 1; i <= n; i++ )
        if ( b[i] == 0 )
        contor++;

    fout << contor;

    return 0;
}

void ciur ()
{
    b[1]=b[0]=1;

    for ( int i = 4; i <=Nmax; i+=2 )
        b[i] = 1;

    for ( int i = 3; i*i <= Nmax; i+=2 )
        if ( b[i] == 0 )
        for ( int j = i*i; j <=Nmax; j+=i )
        b[j] = 1;
}