Cod sursa(job #292393)

Utilizator catalin93Catalin Ionescu catalin93 Data 31 martie 2009 09:09:23
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda The Beginners Marime 0.48 kb
#include<stdio.h>

const int N=2000005;

int x;
bool c[N];//dupa prelucrare c[i]=true <=> i NU este prim

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

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

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