Cod sursa(job #411017)

Utilizator GotenAmza Catalin Goten Data 4 martie 2010 18:09:44
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include<fstream.h>
#include<math.h>
bool np[1000000];
int main()
{
	int n,m,nr=0,d,a,b;
	ifstream f("ciur.in");
	ofstream g("ciur.out");
	f>>n;
	m=sqrt(n);
	nr++;
	d=3;
	while(d<=n)
	{
		nr++;
		if(d<=m)
		{
			a=d*d;
			b=2*d;
			while(a<=n)
			{
				np[a>>1]=1;
				a+=b;
			}
		}
		np[d>>1]=1;
		a=d>>1;
		while(np[a])
			a++;
		d=1+(a<<1);
	}
	g<<nr;
	return 0;
}