OpenFIPI 2.0

5

5

8BD535

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится двоичная запись числа N.

2. Далее эта запись обрабатывается по следующему правилу:

а) если сумма цифр в двоичной записи числа чётная, то к этой записи справа дописывается 0, а затем два левых разряда заменяются на 10;

б) если сумма цифр в двоичной записи числа нечётная, то к этой записи справа дописывается 1, а затем два левых разряда заменяются на 11.

Полученная таким образом запись является двоичной записью искомого числа R.

3. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 610 = 1102 результатом является число 10002 = 810, а для исходного числа 410 = 1002 это число 11012 = 1310.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, большее 19. В ответе запишите это число в десятичной системе счисления.

8

res=[]
for n in range(1000):
    s=bin(n)[2:]
    if s.count('1')%2==0:
        s=s+'0'
        s='10'+s[2:]
    else:
        s=s+'1'
        s='11'+s[2:]
    r=int(s,2)
    if r>19:
        res.append(n)
print(min(res))

Просмотреть отправленные ответы 8BD535