''' № 5.41 (; КП‑90). На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 2. К этой записи дописывается справа бит чётности: 0, если в двоичном коде числа N было чётное число единиц, и 1, если нечётное. четное число 1: 0 нечетное число 1: 1 3. К полученному результату дописывается ещё один бит чётности. четное число 1: 00 нечетное число 1: 10 Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число N, после обработки ко‑ торого с помощью этого алгоритма получается число, большее, чем 108. В ответе это число запишите в десятичной системе. min N: R > 108 R = 110 = 11011 10_2 - R = 112 = 11100 00_2 - R = 114 = 11100 10_2 + Ответ: 28 ''' 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 > 108: # min N: R > 108 t += [n] print(min(t)) # 28 ok