Cod sursa(job #359482)

Utilizator proflaurianPanaete Adrian proflaurian Data 26 octombrie 2009 23:58:21
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include<stdio.h>
int a[2000010];
int n,i,i2,j,sol;
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()
{
	sol++;
	for(i=3;i*i<=n;i+=2)
	{
		if(!a[i])
		{
			sol++;i2=i+i;
			for(j=i*i;j<=n;j+=i2)a[j]=1;
		}
	}
	for(;i<=n;i+=2)if(!a[i])sol++;
	printf("%d\n",sol);
}