Cod sursa(job #611398)

Utilizator CBogdanCiobanu Bogdan CBogdan Data 1 septembrie 2011 13:46:40
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<cstdio>
#include<bitset>
using namespace std;

int n,i,j,nr;
bitset<2000010> pr;

void read(),solve();

int main()
{
	read();
	solve();
	
	return 0;
}

void read()
{
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	scanf("%d",&n);
}

void solve()
{
	nr++;
	for(i=3;i*i<=n;i+=2)
	{
		if(pr[i]==0)
		{
			nr++;
			for(j=i*i;j<=n;j+=i)
				pr[j]=1;
		}
	}
	for(;i<=n;i+=2)if(pr[i]==0)nr++;
	printf("%d\n",nr);
}