''' № (; КП‑195). Автомат обрабатывает натуральное число N по следующему алгоритму: 1. Строится двоичная запись числа N. 2. Складываются все цифры полученной двоичной записи. В конец записи (справа) дописывается остаток от деления полученной суммы на 2. если число 1 четно : 0 если число 1 не четно: 1 3. Предыдущий пункт повторяется для записи с добавленной цифрой . если число 1 четно : 00 если число 1 не четно: 10 4. Результат переводится в десятичную систему и выводится на экран. Пример. Дано число N = 13. Алгоритм работает следующим образом: 1. Двоичная запись числа N: 1101. 2. Сумма цифр двоичной записи 3, остаток от деления на 2 равен 1, новая запись 11011. 3. Сумма цифр полученной записи 4, остаток от деления на 2 равен 0, новая запись 110110. 4. На экран выводится число 54. Какое наибольшее число, меньшее 50, может появиться на экране в результате работы автомата? max R < 50 R = 48 = 2**5 + 2**4 = 1100 00_2 Ответ: 48 ''' def alg(n): n2 = bin(n)[2:] if n2.count('1') % 2 == 0: n2 = n2 + '00' else: n2 = n2 + '10' r = int(n2, 2) return r t = [] for n in range(1, 100): r = alg(n) if r < 50: t += [r] print(max(t)) # 48 ok