Cod sursa(job #513973)

Utilizator diac_paulPaul Diac diac_paul Data 17 decembrie 2010 14:54:31
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <stdio.h>
#define NMax 200005

FILE *fin = fopen("ciur.in", "rt");
FILE *fout = fopen("ciur.out", "wt");

int n;
char prime[NMax];

int main()
{
	fscanf(fin, "%d", &n);
	
	for (int i = 2; i <= n; i++)
		prime[i] = 1;

	int rez = 0;
	int i;
	for (i = 2; i * i <= n; i++)
		if (prime[i])
		{
			rez++;
			for (int j = (i * i); j <= n; j += i)
					prime[j] = 0;
		}

	for (; i <= n; i++)
		if (prime[i])
			rez++;

	fprintf(fout, "%d\n", rez);
	fclose(fin);
	fclose(fout);
	return 0;
}