Задание 5. Информатика. ЕГЭ. Шастин. 6.11.2024
- Просмотры: 193
- Изменено: 24 ноября 2024
(Л. Шастин) На вход алгоритма подаётся натуральное число \(N\). Алгоритм строит по нему новое число \(R\) следующим образом
- Строится двоичная запись числа \(N\).
- далее эта запись обрабатывается пос следующему правилу:
- если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается \(0\), а затем два левых разряда заменяются на \(10\);
- если сумма цифр в двоичной записи нечётная, то к этой записи справа дописывается \(1\), а затем два левых разряда заменяются на \(11\).
Полученна ятаким образом запись является двоичной записью искомого числа \(R\). Например, дл яисходного числа \(6_{10} = 110_2\) результатом является число \(1000_2 = 8_{10}\), а для исходного числа \(4_{10} = 100_2\) результатом является число \(1101_2 = 13_{10}\). Укажите минимальное число \(N\), после обработки которого с помощью этого алгоритма получается число \(R\), большее \(171\). В ответе запишите это число в десятичной системе счисления.
Решение:
Python
def R(N):
bn = bin(N)[2:]
if bn.count('1') % 2 == 0:
bn = bn + '0'
bn = '10' + bn[2:]
else:
bn = bn + '1'
bn = '11' + bn[2:]
return int(bn, 2)
#print(R(6), R(4))
for N in range(7, 200):
if R(N) > 171:
print(N)
break
Ответ: \(64\)