Cod sursa(job #254096)

Utilizator vlad.maneaVlad Manea vlad.manea Data 6 februarie 2009 19:24:32
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <stdio.h>

char marcat[1<<21];
long long i, j, ans, N;

int main()
{
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);

	scanf("%ld", &N);

	if (N >= 2)
		for (ans++, j = 4; j <= N; j += 2)
			marcat[j] = 1;

	for (i = 3; i <= N; i += 2)
		if (marcat[i] == 0)
			for (ans++, j = i * i; j <= N; j += i)
				marcat[j] = 1;

	printf("%ld\n", ans);

	return 0;
}