Трикутне число є числом , яке може бути виражено в вигляді суми послідовних позитивних цілих чисел, починаючи з 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
цифри. Значення максимального його digitangular аналог може мати це 45n
, так digi-△(x) ≤ 45n < 45(1+log_10(x))
і для x > 141
нас є 45(1+log_10(x)) < x
, отже , digi-△(x) ≤ x-1
для x > 141
, і як тільки ми переходимо до 141
межі, ну, ми грубою силою довести з допомогою програм.