for使った方がいいと思うんだけどな

for(i=1;i<=no;i*=2) /* 2からにしたかったらi=2に */
printf("%d ",i);