Cod sursa(job #210037)

Utilizator ilincaSorescu Ilinca ilinca Data 26 septembrie 2008 10:16:05
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define Nmax 2000005

vector <bool> c (Nmax);

int n;

void ciur ()
{
	int i, j;
	for (i=2; i<=n; ++i)
		c [i]=true;
        for (i=2; i*i<=n; ++i)
		if (c [i] == true)		
			for (j=i*i; j<=n; j+=i)
				c [j]=false;

}

int nr ()
{
	int i, num=0;
	for (i=2; i<=n; ++i)
		if (c [i])
			++num;
	return num;
}

int main ()
{
	freopen ("ciur.in", "r", stdin);
	freopen ("ciur.out", "w", stdout);
	scanf ("%d", &n);
	ciur ();
	printf ("%d", nr ());
        return 0;
}