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