I tried a lot but I am unable to understand bitwise seive…I know the basic seive.Pleae help me understand the bitwise seive and how it works?
The code with which I am busy with is—
#define MAX 100000000
#define LIM 10000
unsigned flag[MAX>>6]={0};
#define ifc(n) (flag[n>>6]&(1<<((n>>1)&31))) //LINE 1
#define isc(n) (flag[n>>6]|=(1<<((n>>1)&31))) //LINE 2
void sieve() {
unsigned i, j, k;
for(i=3; i<LIM; i+=2)
if(!ifc(i))
for(j=ii, k=i<<1; j<LIMLIM; j+=k)
isc(j);
}