Cod sursa(job #680339)
Utilizator | Tiriplica Mihai Dragos tiriplicamihai | Data | 15 februarie 2012 14:43:51 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include<stdio.h>
#define MaxN 2000005
int N, i, j, nr;
char v[MaxN/8];
int main(){
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d", &N);
for(i = 2; i <= N; i++)
if(!((v[i/8]) & (1<<(i%8)))){
nr++;
for(j = i*i; j <= N; j += i)
v[j/8] |= 1 << (j%8);
}
printf("%d\n", nr);
fclose(stdin);
fclose(stdout);
return 0;
}