Cod sursa(job #2660329)

Utilizator Radu_FilipescuFilipescu Radu Radu_Filipescu Data 18 octombrie 2020 21:51:45
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 2000005;

int N;
bool v[NMAX];

int main()
{
    fin >> N;

    v[2] = true;
    for( int i = 3; i <= N; i += 2 )
        v[i] = true;

    for( int i = 3; i * i <= N; i += 2 )
       if( v[i] )
       for( int j = 3; i * j <= N; j += 2 )
            v[i * j] = false;

    int cnt = 0;
    for( int i = 2; i <= N; ++i )
        cnt += v[i];

    fout << cnt;

    return 0;
}