Cod sursa(job #153329)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 10 martie 2008 14:09:13
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <cstdio>
#include <bitset>

using namespace std;

#define MAXN 2000005

int N;
bitset<MAXN> u;

int main()
{
	freopen("ciur.in", "rt", stdin);
	freopen("ciur.out", "wt", stdout);

	scanf("%d", &N);
	int i, pNr = 1;
	for (i = 3; i * i <= N; i += 2)
	{
		if (u[i])
			continue;

		pNr++;
		for (int j = i * i; j <= N; j += i)
			u[j] = 1;
	}
	for (; i <= N; i += 2)
		if (!u[i])
			pNr++;

	printf("%d\n", pNr);

	return 0;
}