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

ЗАДАНИЕ ПО ИНФОРМАТИКЕ НА ПИТОН СРОЧНО

Семен Беляев Беляев Ученик (89), на голосовании 2 недели назад
Задание 6
Для ускорения самообучения ИИ помоги ребятам написать программу. Её задача — проверять, является ли данное число, которое не больше 1024, степенью числа 2.

Ввод Вывод
512 ДА
19 НЕТ
Голосование за лучший ответ
Татьяна Просветленный (32838) 1 месяц назад
Метод 1: Использование битовых операций
Битовые операции позволяют эффективно проверять, является ли число степенью двойки.
 def is_power_of_two(n): 
# Проверяем, что число больше нуля и является степенью двойки.
return (n & (n - 1)) == 0 and n != 0

# Чтение числа
n = int(input())

# Проверка и вывод результата
if is_power_of_two(n):
print("ДА")
else:
print("НЕТ")

Метод 2: Использование математических функций
Другой метод — это использование логарифмических функций.
 import math 

def is_power_of_two(n):
if n == 0:
return False
# Вычисляем логарифм числа по основанию 2 и проверяем, является ли результат целым числом.
log2_n = math.log2(n)
return log2_n.is_integer()

# Чтение числа
n = int(input())

# Проверка и вывод результата
if is_power_of_two(n):
print("ДА")
else:
print("НЕТ")
Оба метода проверяют, является ли число степенью двойки, и выводят "ДА" или "НЕТ" в зависимости от результата проверки. Выберите тот метод, который вам больше нравится или кажется более понятным.
Похожие вопросы