OpenFIPI 2.0

8BD535

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

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

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

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

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

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

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

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

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

Редактировать

Ответы

8

10

14

23

10

8

5

for i in range(19, 200): n=bin(i)[2:] if ((len(n)-n.count("0"))%2==0): n +="0" n = "10"+n[2:] else: n +="1" n = "11"+n[2:] print(int(n, 2))

32

10

9

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))

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))

4

6

8

8

8

10

8