Cod sursa(job #193001)
| Utilizator | Data | 1 iunie 2008 20:55:16 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <cstdio>
#include <cmath>
int main()
{
const int NMAX = 2000001;
FILE *f1, *f2;
bool v[NMAX] = {};
int n, i, j, rasp = 1, incr, sq;
f1 = fopen("ciur.in", "r");
f2 = fopen("ciur.out", "w");
fscanf(f1, "%d", &n);
sq = sqrt(n);
for (i = 4; i <= n; i += 2) v[i] = 1;
for (i = 3; i <= sq; i += 2)
if (!v[i]) {
for (j = i * i; j <= n; j += i)
v[j] = 1;
}
for (i = 3; i <= n; i += 2) if (!v[i]) ++rasp;
fprintf(f2, "%d\n", rasp);
fclose(f1);
fclose(f2);
return 0;
}
