Un nombre triangulaire est un nombre qui peut être exprimé comme la somme d'entiers positifs consécutifs, à partir de 1. Ils peuvent également être exprimés avec la formule n(n + 1) / 2, où nest un entier positif.
La contrepartie numérique d'un nombre est calculée de la manière suivante:
- Divisez un nombre en un tableau de ses chiffres, par exemple
613 => [6 1 3] - Pour chaque nombre du tableau, calculez le
nnombre triangulaire;[6 1 3] => [21 1 6] - Additionnez le tableau résultant;
[21 1 6] => 28
Votre tâche consiste, compte tenu d'un nombre entier n, à calculer nde façon répétée l'équivalent numérique de jusqu'à ce que le résultat soit égal à 1, puis à sortir toutes les valeurs qui ont été calculées. Vous pouvez afficher les valeurs dans n'importe quel ordre et avec une inclusion facultative du numéro d'origine au début du tableau. C'est un code-golf donc le code le plus court l'emporte.
Cas de test
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
141et comporte des nchiffres. La valeur maximale que son homologue numérique peut avoir est 45n, donc digi-△(x) ≤ 45n < 45(1+log_10(x)), et pour x > 141, nous avons 45(1+log_10(x)) < x, donc digi-△(x) ≤ x-1pour x > 141, et une fois que nous avons dépassé la 141limite, eh bien, nous prouvons la force brute via des programmes.