Задание 5. Информатика. ЕГЭ. Поляков-6590

Просмотры: 15
Изменено: 4 апреля 2025

(Е. Джобс) На вход алгоритма подаётся натуральное число \(N.\) Алгоритм строит по нему новое число \(R\) следующим образом:

  1. Строится двоичная запись числа \(N.\)
  2. К этой записи дописываются разряды по следующему правилу. Если сумма двоичных разрядов кратна \(4,\) слева дописывается \(10,\) иначе \(11.\)
  3. К полученной записи справа дописывается еще один разряд – \(0,\) если полученное двоичное число нечетное, \(1\) в обратном случае.
  4. Полученная таким образом запись является двоичной записью искомого числа \(R.\)

Например, для числа \(13 = 1101_2\) получается \(1111010_2 = 122,\) для числа \(10 = 1010_2\) получается \(1110101_2 = 117.\) Укажите максимальное число \(N,\) для которого значение \(R\) не превышает \(250.\) В ответе это число запишите в десятичной системе счисления.

Решение:

Python


def R(N):
    bn = f'{N:b}'
    bn = '10' + bn if sum(int(x) for x in bn) % 4 == 0  else '11' + bn
    bn += '0' if bn[-1] == '1' else '1'
    return int(bn, 2)

print(max(N for N in range(1, 250) if R(N) <= 250))

Ответ: \(30\)