定義
正の整数n
は、すべてのより小さい正の整数がの別個の約数の合計として表される場合に限り、実用的な数値(OEISシーケンスA005153)ですn
。
たとえば18
、実用的な数値です。除数は1、2、3、6、9、18であり、18より小さい他の正の整数は次のように形成できます。
4 = 1 + 3 5 = 2 + 3 7 = 1 + 6
8 = 2 + 6 10 = 1 + 9 11 = 2 + 9
12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 + 6
13 = 1 + 3 + 9 14 = 2 + 3 + 9 15 = 6 + 9
16 = 1 + 6 + 9 17 = 2 + 6 + 9
しかし14
、実用的な数ではありません。その除数は1、2、7、および14であり、4、5、6、11、12、または13に追加されるこれらのサブセットはありません。
チャレンジ
入力として正の整数を取り、OEISとの一貫性を保つために1からインデックス付けされx
たx 番目の実用的な数値を返すか出力するプログラム、関数、または動詞を記述します。コードは、合理的なデスクトップコンピューターで2分未満で最大250000の入力を処理できるように十分に効率的でなければなりません。(注:Javaの私のリファレンス実装は0.5秒未満で250000を管理し、Pythonの私のリファレンス実装は12秒で管理します)。
テストケース
Input Expected output
1 1
8 18
1000 6500
250000 2764000
1000000 12214770
3000000 39258256