Cod sursa(job #272604)

Utilizator andrei_balintbalint andrei andrei_balint Data 7 martie 2009 15:04:53
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb

#include <fstream>
using namespace std;
ifstream cin("ciur.in");
ofstream cout("ciur.out");
int div(int n)
{
	int i,u,j;
	char c[2000001]={0};
	u=0;
	/*
	for(i=2;i<=n;i++)
		c[i-1]=i;
	for(p=1;c[p]*c[p]<=n;p++)
	{
		for(i=p+1;i<=u;i++)
			if(c[i]%c[p]==0)
			{
				u=u-1;
				x=i;
				for(j=x;j<=n;j++)
					c[j]=c[j+1];
           }
    }
	cout<<u;
	*/
	for(i=2 ; i*i<=n ; ++i)
		if(c[i]==0)//p este prim
			for(j=i*i ; j<=n ; j+=i)
				c[j]=1;
	for(i=2;i<=n;i++)
		if(c[i]==0)
			u=u+1;
	return u;
}
int main()
{
	int n;
	cin>>n;
	cout<<div(n);
	return 0;
}