三角形の数は、それらはまた、式で表すことができる1から始まる、連続する正の整数の和として表すことができる数でありn(n + 1) / 2、nいくつかの正の整数です。
数値の対応する数字は、次の方法で計算されます。
- 数字をその数字の配列に分割します。例えば
613 => [6 1 3] - 配列内の各番号について、
nth三角番号を計算します。[6 1 3] => [21 1 6] - 結果の配列を合計します。
[21 1 6] => 28
あなたのタスクは、整数が与えられると、結果が1になるまでn繰り返しのn対応する数字を計算し、計算されたすべての値を出力します。値は任意の順序で出力でき、オプションで配列の先頭に元の番号を含めることができます。これはコードゴルフなので、最短のコードが優先されます。
テストケース
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、so digi-△(x) ≤ 45n < 45(1+log_10(x))、およびfor x > 141であり45(1+log_10(x)) < x、したがってdigi-△(x) ≤ x-1、for x > 141であり、141制限を超えると、プログラムを介してブルートフォースが証明されます。