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