整数を入力して、その数までを2のべき乗ずつ表示していくという
問題なんですが、エラーは出ずにコンパイルできても
実行したら何も起きません。
宜しければどこが間違ってるか教えて頂けないでしょうか?

#include <stdio.h>

int main (void)
{
    int i,no;

    printf("正の整数を入力して下さい:");
    scanf("%d", &no);

    i = 1;
    while (i <= no)
    {
        if (i == (2 * i))
            printf("%d ", i);
        i++;
    }
    if (no > 0)
        putchar('\n');

    return (0);
}