Cod sursa(job #629292)
Utilizator | FMI - ALexandru Mihai the_snyper06 | Data | 3 noiembrie 2011 04:26:01 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include<cstdio>
unsigned int n;
int main()
{
unsigned int i, j, k = 0;
freopen("ciur.in", "r", stdin), freopen("ciur.out", "w", stdout);
scanf("%u", &n);
unsigned int v[n / 32 + 1];
for(i = 2; i <= n; i++) {
v[i] = 0;
if(!(v[i / 32] & (1<<(i % 32)))) {
k++;
for(j = 2 * i; j <= n; j += i)
v[j / 32] |= (1<<(j % 32));
}
}
printf("%u\n", k);
return 0;
}