Cod sursa(job #657261)

Utilizator sanzianaioneteIonete Sanziana sanzianaionete Data 6 ianuarie 2012 10:50:04
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<cstdio>
using namespace std;
int a[2000001],n,i,nr,m,k;

int main()
{
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	scanf("%d\n",&n);
	m=n/2;
	for(i=2;i<=m;i++)
	{
		a[i]++;
		if (a[i]==1)
		{
			nr++;
		    k=2*i;
			while(k<=n)
			{
				a[k]++;
				k=k+i;
			}
		}
	}
	m++;
	for(i=m;i<=n;i++) if(a[i]==0) nr++;
	printf("%d\n",nr);
	fclose(stdin);fclose(stdout);
	return 0;
}