#include #include int Limit = 5000000; int IntSize = 32; int Shift = 5; int Mask = (1 << 5) - 1; void bitoff(int *bitfield, int no) { bitfield[no >> Shift] &= (~(1 << (no & Mask))); return; } int bitget(int *bitfield, int no) { return !(!(bitfield[no >> Shift] & (1 << (no & Mask)))); } int *Pr = 0; int Pr_end = 0; void pr_gen(int limit) { int i, j; int fieldblk = ((limit+1)+(IntSize-1))/IntSize; int *bitfield = (int*)malloc(sizeof(int)*fieldblk); for (i=0; i