Задание 5 На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим…
Задание 5 На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 2. К этой записи дописываются справа ещё несколько разрядов по следующему правилу: а) Если Nчётное, то к нему справа приписывается в двоичном виде сумма цифр его двоичной записи; б) Если N нечётное, то к нему справа приписываются два нуля, а слева единица. Полученная таким образом запись (в ней как минимум на один разряд больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Например, запись числа 1101 будет преобразована в 11110100. Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 215. В ответе это число запишите в десятичной системе счисления.
Для ручного ввода числа:
a = int(input(‘Введите число: ‘))
b = bin(a)[2:]
print(b)
if b.count(‘1′)%2 == 0:
b+=’10’
else:
b+=’00’
print(b)
print(int(b, base=2))
Числа, получившиеся в интервале от 16 до 32:
def getNumber(x):
b = bin(x)[2:]
print(b)
if b.count(‘1′)%2 == 0:
b+=’10’
else:
b+=’00’
print(b)
return int(b, base=2)
i=1
k=0
count=0
while k<=32:
print(i)
k=getNumber(i)
print(k)
print()
i+=1
if 16 <= k <= 32: count+=1
print(f’Количество выходных чисел в промежутке от 16 до 32 равно {count}’)
Ответ: Количество выходных чисел в промежутке от 16 до 32 равно 5