Cod sursa(job #394826)
Utilizator | Data | 11 februarie 2010 17:53:14 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <cstdio>
int d[2000000],n;
void ciur(int nr)
{
for(int j=nr*nr; j <= n; j = j + nr)
if(d[j])
d[j]=0;
}
int main()
{
freopen ("ciur.in", "r", stdin);
scanf("%d", &n);
int i;
for(i=1;i<=n;i++)
d[i]=i;
for(i = 2; i * i < n; i++)
ciur(i);
freopen ("ciur.out", "w", stdout);
int k=0;
for(i = 2; i <=n; i++)
if (d[i]) k++;
printf("%d", k);
return 0;
}