if の条件が不備。 2のべき乗かどうかのチェックをしていない。

さらに i が 2 * i と等しくなるのは i=0 の時だけ。