Cod sursa(job #256770)

Utilizator ZillaMathe Bogdan Zilla Data 12 februarie 2009 10:02:03
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

#define Nmax 2000001

char a[Nmax];
int nr,n;

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