OpenFIPI 2.0

Редактировать ADF799

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

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

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

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

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

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

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

 

Комментарии

for n in range(1,200): b = bin(n)[2:] sum = b.count('1')%2 b = b + str(sum) b1 = b.count('1')%2 b = b + str(b1) r = int(b,2) if r > 396: print(n,r)