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