Задание 5. Информатика. ЕГЭ. Поляков-6995
- Просмотры: 478
- Изменено: 31 января 2025
(Е. Джобс) На вход алгоритма подается натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом.
- Строится двоичная запись числа \(N.\)
- Складываются все цифры полученной двоичной записи. Если сумма четная в конец дублируются два младших разряда, если нечетная – в конец дописываются проинвертированные два младших разряда.
Полученная таким образом запись является двоичной записью искомого числа \(R.\)
Пример. Дано число \(N = 13.\) Алгоритм работает следующим образом:
- Двоичная запись числа \(N:\) \(1101_2.\)
- Число единиц двоичной записи нечетное, следовательно, дописываем инвертированные два младших разряда – \(1101 + 10 = 110110.\)
- \(110110_2 = 54_{10}.\)
В результате работы автомата на экране появилось число, большее \(154.\) Для какого наименьшего значения \(N\) это возможно?
Решение:
Python
def R(N):
bn = f'{N:b}'
if bn.count('1') % 2 == 0:
bn = bn + bn[-2:]
else:
bn = bn + bn[-2:][::-1]
return int(bn, 2)
for N in range(10, 155):
if R(N) > 154:
print(N)
break
Ответ: \(39\)