Cod sursa(job #1694522)

Utilizator xtreme77Patrick Sava xtreme77 Data 25 aprilie 2016 15:59:56
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
/**
 * Code by Patrick Sava
 * "Spiru Haret" National College of Bucharest
 **/

# include <bits/stdc++.h>

const char IN [ ] =  "ciur.in" ;
const char OUT [ ] = "ciur.out" ;

using namespace std ;

# define pb push_back
# define mp make_pair
# define FORN( a , b , c ) for ( register int a = b ; a <= c ; ++ a )
# define FORNBACK( a , b , c ) for ( register int a = b ; a >= c ; -- a )

ifstream fin ( IN ) ;
ofstream fout ( OUT ) ;

const int MAX = 2e6 + 14 ;

bool viz [ MAX ] ;

int ciur ( int n )
{
    int solutie = 0 ;
    for ( int i = 2 ; i <= n ; ++ i )
    {
        if ( viz [ i ] == 0 ) { // e prim
            for ( int j = i + i ; j <= n ; j += i ) {
                viz [ j ] = 1 ;
            }
            ++ solutie ;
        }
    }
    return solutie ;
}

int main()
{
    int n ;
    fin >> n ;
    fout << ciur ( n ) ;
    return 0;
}