5 номер. Преобразование записей чисел
Алгоритм обработки числа
(О. Лысенков) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится пятеричная запись числа N.
2. Далее эта запись обрабатывается по следующему правилу:
а) если количество разрядов в записи числа R кратно 2, то запись делится посередине, левая и правая половина записи меняются местами;
б) если количество разрядов в записи числа R не кратно 2, то к ней справа приписывается остаток от деления числа N на 5, после этого запись делится посередине, левая и правая половина записи меняются местами.
Полученная таким образом запись является пятеричной записью искомого числа R.
Например, для исходного числа 21 = {41}_{5} результатом работы алгоритма является {14}_{5} = 9
Укажите наименьшее число N, для которого результат работы данного алгоритма больше 50.
В ответе это число запишите в десятичной системе счисления.
Подсказка
Сначала выполните все шаги для одного N, сохраняя строку после каждого изменения. Затем уточните, что требуется выбрать: N, R или количество значений.
Решение
def cc(n): s = '' while n != 0: s = str(n % 5) + s n //= 5 return s def f(n): s = cc(n) if len(s) % 2 == 0: s = s[len(s) // 2:] + s[:len(s) // 2] else: s = s + str(n % 5) s = s[len(s) // 2:] + s[:len(s) // 2] return int(s,5) for i in range(1,1000): if f(i)>50: print(i) break