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