Вот интересная последовательность, обнаруженная Полом Лумисом, математиком из Университета Блумсбурга. Со своей страницы по этой последовательности:
Определите
f(n) = f(n-1) + (the product of the nonzero digits of f(n-1))
f(0) = x
, x
как любое положительное целое число, записанное в базе 10.
Итак, начиная с f(0)=1
, вы получите следующую последовательность
1, 2, 4, 8, 16, 22, 26, 38, 62, 74, 102, 104, ...
Пока что все стандартно. Интересное свойство вступает в игру, когда вы берете любое другое целое число в качестве отправной точки, в конце концов последовательность сходится в точку вдоль вышеуказанной x=1
последовательности. Например, начиная с x=3
доходности
3, 6, 12, 14, 18, 26, 38, 62, 74, 102, ...
Вот еще несколько последовательностей, каждая из которых показана только до достижения 102
:
5, 10, 11, 12, 14, 18, 26, 38, 62, 74, 102, ...
7, 14, 18, 26, 38, 62, 74, 102, ...
9, 18, 26, 38, 62, 74, 102, ...
13, 16, 22, 26, 38, 62, 74, 102, ...
15, 20, 22, 26, 38, 62, 74, 102, ...
17, 24, 32, 38, 62, 74, 102, ...
19, 28, 44, 60, 66, 102, ...
Он предположил и эмпирически доказал x=1,000,000
, что это свойство (т. Е. Все входные числа сходятся к одной и той же последовательности) верно.
Соревнование
Учитывая положительное входное целое число 0 < x < 1,000,000
, выведите число, в котором f(x)
последовательность сходится к f(1)
последовательности. Например, для x=5
, это будет 26
, так как это первое число, общее для обеих последовательностей.
x output
1 1
5 26
19 102
63 150056
правила
- Если применимо, вы можете предположить, что ввод / вывод будет соответствовать целочисленному типу вашего языка.
- Вход и выход могут быть заданы любым удобным способом .
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
источник
Желе ,
1814 байтовВвод представляет собой одноэлементный массив.
Попробуйте онлайн!
Как это работает
источник
Python 2 ,
111,95,93 байтаИспользование распаковки
replace(*'01')
в ответе @Rod-18 байт благодаря @Lynn
Попробуйте онлайн!
источник
while cmp(*l)
!Haskell , 65 байт
Попробуйте онлайн!
источник
Python 2 , 78 байт
Попробуйте онлайн!
источник
Шелуха , 13 байт
Принимает ввод в виде одноэлементного списка.
Попробуйте онлайн!
объяснение
источник
Python 3 ,
126125 байтПопробуйте онлайн!
Принять входные данные как строку
источник
Java (JDK 10) , 99 байт
Попробуйте онлайн!
Главным образом итеративный порт ответа Арнаулда на JavaScript , так что поднимите его!
источник
Желе , 23 байта
Попробуйте онлайн!
источник
J , 50 байт
определение функции молчаливого стиля
если аргумент (скажем, 63) был вставлен в выражение REPL, это может быть 45, например
,&1
добавить 1, чтобы сгенерировать последовательность поиска, а также последовательность аргументов^:(<453)"0
повторяется каждый, пока 1mio не будет достигнут в последовательности 1+ [: */@(*#]) (#~10)&#:
вилка добавляет к крючку, который делает произведение цифр(e.~ # ])/
использует пункт повтора, если существует, чтобы получить пересечение списков{.
вернуть только первое общее значениеПопробуйте онлайн!
источник
R ,
11086 байтTIO
предыдущая версия 110:
TIO
источник