Как проверить является ли число степенью двойки python
Перейти к содержимому

Как проверить является ли число степенью двойки python

  • автор:

Ошибка сервера в приложении ‘/’.

Описание: На сервере возникла ошибка приложения. Текущая пользовательская настройка ошибок для этого приложения не позволяет удаленно просматривать сведения об ошибке данного приложения (из соображений безопасности). Однако, сведения можно просматривать в браузерах, запущенных на локальном сервере.

Сведения: Для разрешения просмотра сведений данного сообщения об ошибке на локальном сервере создайте тег в файле конфигурации «web.config», который находится в корневом каталоге текущего веб-приложения. В теге следует задать атрибут «mode» со значением «Off».

Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут «defaultRedirect» тега конфигурации приложения таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.

Условие

По данному натуральному числу N найдите наибольшую целую степень двойки, не превосходящую N. Выведите показатель степени и саму степень.

Операцией возведения в степень пользоваться нельзя!

Решение

n = int(input()) two_in_power = 2 power = 1 while two_in_power 

Комментарии

Nate Tiger :

Вот такая реализация покороче:
n = int(input())
i = 1
while n > = 2**i:
i += 1
print((i-1), 2**(i-1))

Аноним : Там нельзя использовать возведение в степень с помощью «**» Dmitry : n = int(input())
i = 2
nn = 1
while i i *= 2
nn += 1
print(nn - 1, i // 2) Farrukh : def power_of_two(n):
sqr=1
while(sqr <=n):
print(sqr,end=' ')
sqr=sqr*2

Добавить комментарий Отменить ответ

ЕГЭ на соточку для чайников

Прошу прощения, что так долго пропадал. Питошка вернулся, да еще и с группой в вконтакте, подписывайтесь. Помимо этого, на питошке откроется новая рубрика, в которой будут четкие объяснения всех заданий ЕГЭ и ОГЭ по информатике, внимательно прочитав которые, я уверен, вы улучшите свои баллы на экзамене ��

Python-сообщество

[RSS Feed]

  • Начало
  • » Python для новичков
  • » Программа, которая проверяет, является ли введённое натуральное число степенью двойки. И выводится сама эта степень

#1 Окт. 21, 2018 09:26:37

sssss Зарегистрирован: 2018-10-20 Сообщения: 4 Репутация: 0 Профиль Отправить e-mail

Программа, которая проверяет, является ли введённое натуральное число степенью двойки. И выводится сама эта степень

Как проверить является или нет я понял. А как вывести саму эту степень(показатель степени) , если является?
n = int(input())
i = 1
while i < n:
i = i * 2
if i == n:
print(“Yes”)
else:
print(“NO”)

#2 Окт. 21, 2018 11:15:42

Papa_Svin Зарегистрирован: 2018-09-17 Сообщения: 138 Репутация: 1 Профиль Отправить e-mail

Программа, которая проверяет, является ли введённое натуральное число степенью двойки. И выводится сама эта степень

import math print(math.log2(32)) 

#3 Окт. 21, 2018 12:35:54

DamMercul Зарегистрирован: 2017-11-26 Сообщения: 323 Репутация: 13 Профиль Отправить e-mail

Программа, которая проверяет, является ли введённое натуральное число степенью двойки. И выводится сама эта степень

print(math.log(32, 2)) # log2 является осужденным) 
# Life loop while alive: if (fun > boredom) and money: pass_day(fun, boredom, money) continue else: break 

Отредактировано DamMercul (Окт. 21, 2018 12:36:06)

#4 Окт. 21, 2018 13:15:02

Papa_Svin Зарегистрирован: 2018-09-17 Сообщения: 138 Репутация: 1 Профиль Отправить e-mail

Программа, которая проверяет, является ли введённое натуральное число степенью двойки. И выводится сама эта степень

DamMercul
каким .

#5 Окт. 21, 2018 21:23:09

sssss Зарегистрирован: 2018-10-20 Сообщения: 4 Репутация: 0 Профиль Отправить e-mail

Программа, которая проверяет, является ли введённое натуральное число степенью двойки. И выводится сама эта степень

sssss
Как проверить является или нет я понял. А как вывести саму эту степень(показатель степени) , если является?n = int(input())i = 1while i < n: i = i * 2if i == n: print(“Yes”)else: print(“NO”)

n = int(input())
i = 0
while 2 ** i i += 1
if i print(i - 1)
else:
print(“NO”)
Есть такой вариант, но он из числа допустим 65535 выводит 15. А должен “No”

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

Теперь, взяв and между n и n-1, мы получим все нули в двоичной записи. Для числа, не являющегося степенью двойки, мы не получим настолько "инвертированные" записи. По аналогии с десятичной системой: только отняв от круглого числа вроде 10000 или 1000 единицу, мы получим в результате все девятки.

Проверку на n=0 можно не делать, так как по условию задачи n - натуральное. То есть итоговое решение будет выглядеть как:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *