Cod sursa(job #256770)
Utilizator | 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;
}