Cod sursa(job #301985)
Utilizator | Space Monkey stefynr8 | Data | 8 aprilie 2009 16:20:34 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
#include <string.h>
#include <math.h>
int main ()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
long k,n,i,j;
unsigned char p[2000001];
scanf("%ld", &n);
memset(p,'1',2000001);
i=2; k=0;
while (i<=n)
if (p[i]=='1'){
for( j=i;j<=n;j=j+i)
p[j]='0';
k++;
}
else i++;
printf("%ld", k);
return 0;
}