OpenFIPI 2.0

5

5

E8FD94

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

1. Строится двоичная запись числа N.

2. К этой записи дописываются справа ещё два разряда по следующему правилу:

а) складываются все цифры двоичной записи, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;

б) над этой записью производятся те же действия  справа дописывается остаток от деления суммы цифр на 2.

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

Укажите такое наименьшее число N, для которого результат работы алгоритма больше 45. В ответе это число запишите в десятичной системе счисления.

 

11

for n in range(1, 100):
    b = bin(n)[2:]
    b = b + str(b.count('1') % 2)
    b = b + str(b.count('1') % 2)
    r = int(b, 2)
    if r > 45:
        print(n)
        break

Просмотреть отправленные ответы E8FD94