Цикл с предусловием (питон)

На вход программе подаётся натуральное число N. Напишите программу, которая вычисляет и выводит на экран N первых степеней числа 2 в порядке возрастания. Придерживайтесь формата «2 ** 10 = 1024».

Формат входных данных
На вход программе подаётся натуральное число N.

Формат выходных данных
N строк - степени двойки от 1 до N включительно в формате «2 ** 10 = 1024»

Sample Input 1:

4
Sample Output 1:

2 ** 1 = 2
2 ** 2 = 4
2 ** 3 = 8
2 ** 4 = 16
Sample Input 2:

10
Sample Output 2:

2 ** 1 = 2
2 ** 2 = 4
2 ** 3 = 8
2 ** 4 = 16
2 ** 5 = 32
2 ** 6 = 64
2 ** 7 = 128
2 ** 8 = 256
2 ** 9 = 512
2 ** 10 = 1024



n = int(input())
i = 1
while n >= 2**i:
    i += 1
print((i-1), 2**(i-1))

Ответы (2 шт):

Автор решения: Shamus Rezol
for power in range(1, 10 + 1):
    print(f"{N} ** {power} = {N ** power}")
→ Ссылка
Автор решения: TigerTV.ru

Еще вариант:

from itertools import accumulate, repeat

n = 10
a = 2
for k, v in enumerate(accumulate(repeat(a, n), lambda x, y: x*y)):
    print(a, "**", k+1, "=", v)

Bторой:

n = 10
p = 1
i = 0
a = 2
while i < n: 
    p *= a
    i += 1
    print(a, "**", i , "=", p)

Третий:

n = 10
p = 1
i = 0
for i in range(1, n+1): 
    p <<= 1
    print("2 **", i , "=", p)
→ Ссылка