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

Просмотры: 58
Изменено: 17 февраля 2025

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

  1. Строится двоичная запись числа \(N.\)
  2. К этой записи дописываются справа еще два разряда по следующему правилу:
    • a) складываются все цифры двоичной записи числа \(N,\) и остаток от деления суммы на \(2\) дописывается в конец числа (справа). Например, запись \(11100\) преобразуется в запись \(111001;\)
    • b) над этой записью производятся те же действия — справа дописывается остаток от деления суммы ее цифр на \(2.\)

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа \(N)\) является двоичной записью искомого числа \(R.\) Укажите такое наибольшее число \(N,\) для которого результат работы данного алгоритма будет меньше \(86.\) В ответе это число запишите в десятичной системе счисления.

Решение:

Python


def R(N):
    bn = f'{N:b}'
    bn += str(bn.count('1') % 2)
    bn += str(bn.count('1') % 2)
    return int(bn, 2)

for N in range(100, 0, -1):
    if R(N) < 86:
        print(N)
        break

Ответ: \(20\)