Cod sursa(job #513971)

Utilizator diac_paulPaul Diac diac_paul Data 17 decembrie 2010 14:52:40
Problema Ciurul lui Eratosthenes Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 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 primes[NMax];

int main()
{
	fscanf(fin, "%d", &n);

	primes[0] = 2;
	primes[1] = 3;
	int i;
	for (i = 2; primes[i-1] <= n; i++)
	{
		primes[i] = primes[i-1] + 2;
		for (int j = 0; primes[j] * primes[j] <= primes[i]; j++)
			if (primes[i] % primes[j] == 0)
			{
				primes[i] += 2;
				j = 0;
			}
	}

	/*
	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", i - 1);
	fclose(fin);
	fclose(fout);
	return 0;
}