Cod sursa(job #192991)

Utilizator Omega91Nicodei Eduard Omega91 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;
}