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