+import c
+
+class Bitarray
+
+ var narr: CByteArray
+
+ init do
+ for x in [0 .. narr.length[ do narr[x] = 0xFFu8
+ end
+
+ fun [](pos: Int): Bool do
+ pos -= 2
+ return (narr[pos / 8] & (1u8 << (7 - pos % 8))) != 0u8
+ end
+
+ fun []=(pos: Int, val: Bool) do
+ pos -= 2
+ if val then
+ narr[pos / 8] |= 1u8 << (7 - pos % 8)
+ else
+ narr[pos / 8] &= 0xFFu8 - (1u8 << (7 - pos % 8))
+ end
+ end
+end
+
+fun nsieve(n: Int): Int