Cod sursa(job #193001)

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