Алгоритм получает на вход натуральное число N и строит по нему новое число R следующим образом.
1.Строится троичная запись числа N.
2.В полученной записи все нули заменяются на двойки, все двойки— на нули. Из полученного числа удаляются ведущие нули.
3.Результат переводится в десятичную систему счисления.
4.Результатом работы алгоритма становится модуль разности исходного числа N и числа, полученного на предыдущем шаге.
Пример. Дано число N=35. Алгоритм работает следующим образом.
1.Строим троичную запись числа N: 3510=10223.
2.Заменяем цифры и удаляем ведущие нули: 1022 → 1200.
3.Переводим в десятичную систему: 12003=4510.
4.Вычисляем модуль разности: |35−45|=10.
Результат работы алгоритма R=10.
При каком наименьшем N в результате работы алгоритма получится R=1 864 246.
Добавлено: 22.03.26 14:15
Решение на языке Python
for N in range(1864245, 10**10):
s = ""
while N > 0:
s += str(N % 3)
N //= 3
s = s[::-1]
R = s.replace("0", "*").replace("2", "0").replace("*", "2")
if abs(int(s, 3) - int(R, 3)) == 1864246:
print(int(s, 3))
breakОтвет: 3323607
Автор - rubygem17
None