Cod sursa(job #723509)
| Utilizator | Data | 25 martie 2012 15:45:52 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <iostream>
#include <fstream>
#define nmax 2000005
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
int N, nr=0;
bool v[nmax];
int main()
{
in>>N;
for (int i = 2; i <= N; ++i)
v[i] = true;
for (int i = 2; i <= N; ++i)
{
if ( v[i] && ( i == 2 || i == 3 || i == 5 || i == 7 ) )
{
++nr;
for ( int j = i*i; j <= N; j += i )
v[j] = false;
}
else
if ( v[i] )
++nr;
}
out<<nr;
return 0;
}
