№ 1285
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа). Например, запись 11100 преобразуется в запись 111001;
б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите минимальное число R, которое превышает число 396 и может являться результатом работы данного алгоритма. В ответе это число запишите в десятичной системе счисления.
for N in range(1,1000):
a=bin(N)[2:]
s=0
x=int(a)
while x!=0:
s=s+x%10
x=x//10
b=str(s%2)
a=a+b
s=0
x=int(a)
while x!=0:
s=s+x%10
x=x//10
b=str(s%2)
a=a+b
R=int(a,2)
if R>396:
print(R)
break
402
KEGE