Cod sursa(job #210082)

Utilizator vlad_popaVlad Popa vlad_popa Data 26 septembrie 2008 14:10:33
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <cstdio>

int N, Ans;
char Nr_Prim[2000001];

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

	scanf ("%d\n", &N);

	int rad;
	for (rad = 1; rad*rad <= N; ++ rad);
	for (int i = 2; i <= rad; ++ i)
		if (!Nr_Prim[i]){
			for (int j = i + i; j <= N; j += i)
				Nr_Prim[j] = 1;
		}

	for (int i = 3; i <= N; i += 2)
		if (!Nr_Prim[i]) ++ Ans;
	printf ("%d\n", Ans + 1);

	return 0;
}