Un número triangular es un número que se puede expresar como la suma de enteros positivos consecutivos, comenzando en 1. También se pueden expresar con la fórmula n(n + 1) / 2
, donde n
hay algún entero positivo.
La contraparte digital de un número se calcula de la siguiente manera:
- Dividir un número en una matriz de sus dígitos, por ejemplo
613 => [6 1 3]
- Para cada número en la matriz, calcule el
n
número triangular th;[6 1 3] => [21 1 6]
- Suma la matriz resultante;
[21 1 6] => 28
Su tarea es, dado un número entero n
, calcular repetidamente n
la contraparte digitalangular, hasta que el resultado sea igual a 1, luego generar todos los valores calculados. Puede generar los valores en cualquier orden y con una inclusión opcional del número original al comienzo de la matriz. Este es un código de golf, por lo que gana el código más corto.
Casos de prueba
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
y tiene n
dígitos. El valor máximo que puede tener su contraparte digital es 45n
, por lo tanto digi-△(x) ≤ 45n < 45(1+log_10(x))
, y para x > 141
, tenemos 45(1+log_10(x)) < x
, digi-△(x) ≤ x-1
por lo tanto x > 141
, para , y una vez que superamos el 141
límite, bueno, probamos la fuerza bruta a través de programas.