''' № 5.80 (; КП‑271 (В.Н. Шубинкин)). На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится четверичная запись числа N. 2. К этой записи дописывается ещё три или четыре разряда по следующему правилу: если N нечётное, то слева к нему приписывается «2», а справа — «11». В противном случае слева при‑ писывается «13», а справа «02». Например, N = 45_10 = 2314 ⇒ 2231114 = 2773_10 = R. Полученная таким образом запись (в ней на три или четыре разряда больше, чем в записи исходного числа N) является четверичной записью искомого числа R. Укажите наименьшее число R, большее 1000, которое может быть получено с помощью описанного алгоритма. В ответ запишите это число в десятичной системе счисления. min R > 1000 ''' def n2p(n, p): # перевод натур. числа n в с.с. с основ. p (p in [2; 10]) s = '' while n > 0: dig = n % p s = str(dig) + s # !!!! n //= p return s def alg(n): n4 = n2p(n, 4) if n % 2 != 0: n4 = '2' + n4 + '11' else: n4 = '13' + n4 + '02' r = int(n4, 4) return r t = [] for n in range(1, 100): r = alg(n) if r > 1000: t += [r] print(min(t)) # 1858 ok # 22 - 2 23 - 3 24 - 2 25 - 3 26 -2 (?)