


Программирование
+2Задача Python Точная степень двойки Дано натуральное число N. Выведите слово YES, если число N является точной степенью
Точная степень двойки Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией возведения в степень пользоваться нельзя! Входные данные Вводится натуральное число, не превосходящее 200.
По дате
По рейтингу
N = int(input())
print("YES" if (N & (N - 1)) == 0 else "NO")
n = int(input())
a = 1
while a < n:
a = a * 2
if a == n:
print("YES")
else:
print("NO")
Тупой метод - просто сравнить введенное число со всеми степенями двойки, до 200 их всего 8 штук, не слишком напряжно.
Метод умнее - проверить, что в числе ровно один бит равен 1. Опять же, есть тупой метод со сдвигом в цикле, а есть bin(n).count("1").
В общем, выбирай на вкус.
Больше по теме