Um número triangular é um número que pode ser expresso como a soma dos números inteiros positivos consecutivos, iniciando em 1. Eles também podem ser expressos com a fórmula n(n + 1) / 2
, onde n
está um número inteiro positivo.
A contraparte digitangular de um número é calculada da seguinte maneira:
- Divida um número em uma matriz de seus dígitos, por exemplo
613 => [6 1 3]
- Para cada número na matriz, calcule o
n
número triangular;[6 1 3] => [21 1 6]
- Soma a matriz resultante;
[21 1 6] => 28
Sua tarefa é, dado um número inteiro n
, calcular repetidamente n
a contraparte digital retangular, até que o resultado seja igual a 1, em seguida, gerar todos os valores que foram calculados. Você pode emitir os valores em qualquer ordem e com uma inclusão opcional do número original no início da matriz. Este é um código de golfe, portanto o código mais curto vence.
Casos de teste
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
e tenha n
dígitos. O valor máximo que sua contraparte digitangular pode ter é 45n
, então digi-△(x) ≤ 45n < 45(1+log_10(x))
, e para x > 141
, temos 45(1+log_10(x)) < x
, portanto , digi-△(x) ≤ x-1
para x > 141
e, uma vez ultrapassado o 141
limite, bem, provamos a força bruta por meio de programas.