読み込む整数値以下の偶数を並べるソースを書いてみました。
偶数ではなく、2のべき乗を並べるにはどう書き換えるべきでしょうか?

#include <stdio.h>
int main (void)
{
int i, no;
printf("整数を入力してください:");
scanf("%d", &no);

i = 2;
if(no > 0){
while(i <= no){
printf("%d ", i++);
i++;
}
putchar('\n');
}
else
puts("正の数を入力してください。");
return 0;
}