Cod sursa(job #209094)
| Utilizator | Data | 20 septembrie 2008 16:44:46 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include<stdio.h>
char c[2000001];
int ciur (int n)
{
long int d=2,i,num;
while (d*d<n)
{
if(!c[d])
{
for (i=d*d; i<=n; i+=d)
c[i]=1;
}
d++;
}
return 0;
}
int numere(int n)
{
long int i,num=0;
for (i=2; i<=n; ++i)
if (!c[i]) num++;
return num;
}
int main()
{
long int n;
freopen ("ciur.in","r",stdin);
freopen ("ciur.out","w",stdout);
scanf("%ld",&n);
ciur(n);
printf("%ld ",numere(n));
return 0;
}
