ニセコイのマリー&あすみすに命を救われている.
10000000までの数から2のn乗の数だけを選んで出力. ただし実行結果は1秒以内、という問題を出した.
print 1 for i in xrange(2, 10000000, 2): if not i & (i - 1): print i
3系ならこう書ける.
print(1) [print(i) for i in range(2, 10000000, 2) if not i & (i-1)]
てもとのマシンだとどちらも1秒以内でできた.
下のは3系の出力結果とかかった時間.
$ time python3.3 exercise.py 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 524288 1048576 2097152 4194304 8388608 real 0m0.617s user 0m0.604s sys 0m0.008s