Напишите программу, которая определяет, является ли число, введенное пользователем, степенью двойки. Если является

Напишите программу, которая определяет, является ли число, введенное пользователем, степенью двойки. Если является, то программа должна вывести это число в качестве показателя степени. В случае если число не является степенью двойки, программа должна вывести "нет". Формат ввода: одно целое число. Формат вывода: одно целое число (показатель степени) или строка "нет".
Степан

Степан

Конечно, вот программа на языке Python, которая решает данную задачу:

python
def check_power_of_two(num):
power = 0
while num % 2 == 0:
num //= 2
power += 1

if num == 1:
return power
else:
return "нет"

# Получение числа от пользователя
number = int(input("Введите число: "))

# Вызов функции и вывод результата
result = check_power_of_two(number)
print(result)


Давайте теперь разберем эту программу пошагово:

1. Создаем функцию `check_power_of_two`, которая принимает в качестве параметра число `num`.
2. Инициализируем переменную `power` с нулевым значением, она будет использоваться для хранения показателя степени.
3. Входим в цикл `while`, который будет выполняться до тех пор, пока число `num` делится на 2 без остатка.
4. Внутри цикла делим число `num` на 2 с помощью оператора `//=`, а затем увеличиваем переменную `power` на 1.
5. После окончания цикла, проверяем, равно ли число `num` единице. Если да, то возвращаем показатель степени `power`, иначе возвращаем строку "нет".
6. Запрашиваем число у пользователя с помощью функции `input` и приводим его к целочисленному типу.
7. Вызываем функцию `check_power_of_two`, передавая ей введенное пользователем число, и сохраняем результат в переменной `result`.
8. Выводим результат на экран с помощью функции `print`.

Таким образом, при вводе числа, программа будет проверять, является ли оно степенью двойки, и выводить либо показатель степени, либо "нет" в случае, если число не является степенью двойки.
Знаешь ответ?
Задать вопрос
Привет!
hello