Условие
По данному натуральному числу N найдите наибольшую целую степень двойки, не превосходящую N. Выведите показатель степени и саму степень.
Операцией возведения в степень пользоваться нельзя!
Решение
n = int(input()) two_in_power = 2 power = 1 while two_in_power <= n: two_in_power *= 2 power += 1 print(power - 1, two_in_power // 2)
Вот такая реализация покороче:
n = int(input())
i = 1
while n > = 2**i:
i += 1
print((i-1), 2**(i-1))
Там нельзя использовать возведение в степень с помощью «**»
n = int(input())
i = 2
nn = 1
while i <= n:
i *= 2
nn += 1
print(nn - 1, i // 2)
def power_of_two(n):
sqr=1
while(sqr<=n):
print(sqr,end=' ')
sqr=sqr*2