Треугольное число является числом , которое может быть выражено в виде суммы последовательных положительных целых чисел, начиная с 1. Кроме того, они могут быть выражены с формулой n(n + 1) / 2
, где n
имеет некоторое положительное целое число.
Цифровая цифра аналога номера рассчитывается следующим образом:
- Разбить число на массив его цифр, например
613 => [6 1 3]
- Для каждого числа в массиве вычислите
n
треугольное число;[6 1 3] => [21 1 6]
- Суммируйте результирующий массив;
[21 1 6] => 28
Ваша задача, учитывая целое число n
, многократно вычислять n
цифроугольный аналог, пока результат не станет равным 1, затем вывести все значения, которые были вычислены. Вы можете выводить значения в любом порядке и с необязательным включением исходного числа в начале массива. Это код-гольф, поэтому выигрывает самый короткий код.
Контрольные примеры
23 => 9 45 25 18 37 34 16 22 6 21 4 10 1
72 => 31 7 28 39 51 16 22 6 21 4 10 1
55 => 30 6 21 4 10 1
78 => 64 31 7 28 39 51 16 22 6 21 4 10 1
613 => 28 39 51 16 22 6 21 4 10 1
8392 => 90 45 25 18 37 34 16 22 6 21 4 10 1
11111 => 5 15 16 22 6 21 4 10 1
8592025 => 117 30 6 21 4 10 1
999999999 => 405 25 18 37 34 16 22 6 21 4 10 1
141
и имеет n
цифры. Максимальное значение, которое может иметь его цифроугольный аналог, равно 45n
, поэтому digi-△(x) ≤ 45n < 45(1+log_10(x))
, и для x > 141
, мы имеем 45(1+log_10(x)) < x
, следовательно, digi-△(x) ≤ x-1
для x > 141
, и как только мы преодолеем 141
предел, хорошо, мы осуществляем грубое доказательство с помощью программ.