Cod sursa(job #2022813)
| Utilizator | Data | 17 septembrie 2017 13:31:31 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include <fstream>
using namespace std;
ifstream in ("ciur.in");
ofstream out ("ciur.out");
bool prime [ 2000001 ] ;
void sieve()
{
prime[1] = 1 ;
prime[2] = 0 ;
prime[3] = 0 ;
for ( int i = 2 ; i <= 2000001 ; i ++ )
{
if ( prime[i] == 0 )
{
for ( int j = i + i ; j <= 2000001 ; j +=i )
{
prime[j] = 1 ;
}
}
}
}
int main()
{
sieve () ;
int n ;
in >> n ;
int cnt = 0 ;
for ( int i = 2 ; i <= n ;i ++ )
{
if ( prime[i] == 0 )
{
cnt ++ ;
}
}
out << cnt ;
return 0;
}
