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