''' № 5.44 (; КП‑140). На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится двоичная запись числа N. 5 = 101_2 2. К этой записи дописывается (дублируется) последняя цифра. 1011_2 3. Затем справа дописывается бит чётности: 0, если в двоичном коде полученного числа чётное число единиц, и 1, если нечётное. 1011_2 ==> 10111_2 4. К полученному результату дописывается ещё один бит чётности. 10111_2 ==> 101110_2 5 => 46 Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R. Укажите минимальное число R, большее 66, которое может быть получено в результате работы этого алгоритма. В ответе это число запишите в десятич‑ ной системе. min R > 66 ''' def alg(n): n2 = bin(n)[2:] n2 = n2 + n2[-1] 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 > 66: t += [r] print(min(t)) # 78 :)