Pagini recente » Cod sursa (job #1736334) | Cod sursa (job #229436) | Cod sursa (job #2298569) | Cod sursa (job #890028) | Cod sursa (job #2002984)
#include <stdio.h>
#include <stdlib.h>
int N;
#define N_MAX 2000000 / 32 + 1
int a[N_MAX];
void mark(int k) {
a[k / 32] = a[k / 32] | (1 << (k % 32));
}
int isMarked(int k) {
int index = a[k / 32];
int mask = index & (1 << (k % 32));
return mask != 0;
}
int main() {
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
scanf("%d", &N);
for(int i = 2; i < N; i++) {
if(!isMarked(i)) {
printf("%d ", i);
for(int j = i * i; j <= N; j += i) {
mark(j);
}
}
}
return 0;
}