Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/190: Рейтинг темы: голосов - 190, средняя оценка - 4.75
1 / 0 / 1
Регистрация: 18.10.2020
Сообщений: 32

Является ли введённое натуральное число степенью двойки

18.10.2020, 20:27. Показов 40602. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Во многих задачах, связанных с компьютерами, особенно близких к аппаратной части, важную роль играют числа, являющиеся степенями двойки: 1, 2, 4, 8 и так далее. Напишите программу, которая проверяет, является ли введённое натуральное число степенью двойки. Если да, то выводится сама эта степень; если нет, выводится «НЕТ».

Формат ввода
Одно целое число.

Формат вывода
Одно целое число (показатель степени) или строка «НЕТ».
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2020, 20:27
Ответы с готовыми решениями:

Проверить, является ли число n точной степенью двойки
2) Ввести число n с клавиатуры. Если число n является точной степенью двойки, вывести “YES”, в противном случае “NO”.

Проверить, является ли заданное натуральное число степенью двойки
Здравствуйте, форумчане. Есть следующее задание: Дано натуральное число N. Выведите слово YES, если число N является точной...

Является ли число степенью двойки?
Прошу помочь найти ошибку. Смотрю на код, рассуждаю, вроде всё должно работать. Варианты с функциями и for не рассматриваются. Хочу...

12
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
18.10.2020, 22:02
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
a = int(input())
b = 0
while a != 1:
    if a % 2 != 0:
        print('НЕТ')
        break
    a //= 2
    b += 1
else:
    print(b)
1
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
18.10.2020, 22:11
sharacterizidea,
Python
1
2
k = bin(int(input()))
print(('НЕТ' if k.count('1') - 1 else len(k) -3))
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
19.10.2020, 10:44
Боян. Смотрим внизу страницы.
0
1 / 1 / 0
Регистрация: 18.10.2022
Сообщений: 7
18.10.2022, 20:55
Python
1
2
3
4
5
6
7
8
9
10
11
12
dva = 2
stepen = 1
numb = int(input())
if numb == 1:
    print('0')
elif numb % 2 == 0:
    while dva != numb:
        stepen += 1
        dva *= 2
    print(stepen)
else:
    print('НЕТ')
0
740 / 622 / 151
Регистрация: 04.03.2022
Сообщений: 1,272
19.10.2022, 14:14
Python
1
2
3
4
5
6
import math
n = int(input("n= "))
if int(math.log(n, 2)) == math.log(n, 2):
    print(int(math.log(n, 2)))
else:
    print('НЕТ')
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
19.10.2022, 14:32
Parramon, самый худший вариант из всех приведенных.
Поставьте n=2**1000
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
19.10.2022, 14:37
Python
1
2
3
4
5
def is_power_of_2(n):
    return int(bin(n)[3:])==0
 
print(is_power_of_2(4096))
print(is_power_of_2(4097))
1
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
19.10.2022, 14:52
Catstail, не вы ли давеча мне говорили, что если дано число, то с ним надо как с числом, а не со строкой?)
Python
1
2
def is_power_of_2(n):
    return ['NO', n.bit_length()-1][n == 1<<n.bit_length()-1]
4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
19.10.2022, 15:09
Red white socks, да, правда Ваша... "Если нельзя, но очень хочется, то можно"
3
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
19.10.2022, 15:18
Catstail, тогда еще вариант-однострочник
Python
1
is_power_of_2=lambda x: set(f'{x:b}'[1:])=={'0'}
Немного не по условию задачи, но тем не менее..
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
19.10.2022, 15:23
Python
1
2
n = int(input())
print(n & -n == n)
4
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,760
19.10.2022, 15:24
Ну и классика определения стерени двойки:
Python
1
is_power_of_2=lambda x: x&(x-1)==0
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2022, 15:24
Помогаю со студенческими работами здесь

Выведите слово YES, если число N является точной степенью двойки
Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Операцией...

Написать функцию power_of_two, которая определяет является ли заданное число степенью двойки
# Написать функцию power_of_two, которая определяет является ли заданное число степенью двойки. # С комментариями # Примеры: #...

Является ли число степенью двойки? Вводится число. Напечатать YES, если оно является степенью двойки, NO - ина
Является ли число степенью двойки? Вводится число. Напечатать YES, если оно является степенью двойки, NO - иначе си шарп

Является ли натуральное число точной степенью двойки
Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Формат...

Определить, является ли натуральное число N степенью двойки
Определить, является ли натуральное число N степенью двойки while


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru