Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с заданием pyton

Василина Плескач Ученик (118), открыт 1 неделю назад
По данному натуральному N
выведите такое наименьшее целое
число k что 2**k <= N
Нельзя пользоваться возведением в степень
N = int(input())
k = 1 while k <= n:
k = k * 2 * 2 print (k)
игнорирует каждое 2е число 4 16 64... а должно быть(2 4 6 8 16...)
1 ответ
Николай Кондрашкин Мастер (1962) 1 неделю назад
Насколько я понял нужно не наименьшее, а наибольшее число k, иначе это какая-то бессмыслица.
Нельзя пользоваться возведением в степень, но двоичный логарифм использовать никто не запрещал )
 from math import log2 

N = int(input())
k = int(log2(N))

print(k)
Похожие вопросы