На вход алгоритма подаётся натуральное число . Алгоритм строит по нему новое число
следующим образом.
- Строится двоичная запись числа
.
-
К этой записи дописываются справа ещё два разряда по следующему правилу:
- складываются все цифры двоичной записи числа
, и остаток от деления суммы на
дописывается в конец числа (справа). Например, запись
преобразуется в запись
;
- над этой записью производятся те же действия — справа дописывается остаток от деления суммы ее цифр на
.
- складываются все цифры двоичной записи числа
Полученная таким образом запись является двоичной записью искомого числа . Укажите минимальное число
, которое превышает число
и может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.
for i in range(1, 1000):
r = bin(i)[2:]
r += str(r.count(’1’) % 2)
r += str(r.count(’1’) % 2)
if int(r, 2) > 1000:
print(int(r, 2))
break
Ответ: 1006