Cod sursa(job #1249258)
| Utilizator | Data | 26 octombrie 2014 19:07:36 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#define Nmax 2000100
using namespace std;
int N, Solution;
bool used[Nmax];
void Sieve() {
int i, j;
Solution = 1;
for(int i = 3; i <= N; i += 2)
if(!used[i]) {
++Solution;
if(i < 2000)
for(j = i * i; j <= N; j += (i << 1))
used[j] = true;
}
}
void Read() {
ifstream in("ciur.in");
in >> N;
in.close();
}
void Write() {
ofstream out("ciur.out");
out << Solution << '\n';
out.close();
}
int main() {
Read();
Sieve();
Write();
return 0;
}
