Cod sursa(job #764183)
Utilizator | maldur vitalik vitalea | Data | 4 iulie 2012 12:45:27 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
int main()
{
std::ifstream in ( "ciur.in" );
std::ofstream out ( "ciur.out" );
int n;
in >> n;
std::vector<int> prim ( n + 1, 1 );
int nr = 0;
for( int i = 2; i <= sqrt( n ); i++ )
{
if( prim[i] )
{
nr++;
for( int j = i * i; j <= n; j += i )
{
prim[j] = 0;
}
}
}
out << nr;
in.close();
out.close();
return 0;
}