Сито из эратосфена: немного оптимизировано
После поиска в сети я узнал, что побитовая версия сита из эратосфена довольно эффективна. Проблема в том, что я не могу понять математику / метод, который он использует.
Версия, которой я был занят, выглядит следующим образом:
#define MAX 100000000
#define LIM 10000
unsigned flag[MAX>>6]={0};
#define ifc(n) (flag[n>>6]&(11)&31))) //LINE 1
#define isc(n) (flag[n>>6]|=(11)&31))) //LINE 2
void sieve() {
unsigned i, j, k;
for(i=3; i