>>827
「2のべき乗かどうか」をチェックする必要など無い。
「2のべき乗にしかならない」値を作ればいい。

i=0;while((2<<i)<=no){printf("%d ", (2<<i));i++;}