{{{ %cython def is2pow(unsigned int n): while n != 0 and n%2 == 0: n = n >> 1 return n == 1 }}}
{{{ time [n for n in range(10^5) if is2pow(n)] /// [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536] CPU time: 0.05 s, Wall time: 0.06 s }}}
{{{ # The same program but in Python: def is2pow(n): while n != 0 and n%2 == 0: n = n >> 1 return n == 1 }}}
{{{ time [n for n in range(10^5) if is2pow(n)] /// [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536] CPU time: 13.04 s, Wall time: 15.08 s }}}
{{{ 13.04/0.05 /// 260.79999999999995 }}}
See About this document... for information on suggesting changes.