与えられた正の整数n > 2
。次のように配列に変換します。
2
空の配列を返すことに等しい場合- そうでない場合、すべて
n
の素因数の配列を昇順で作成し、各要素を素数の順序でそのインデックスに置き換え、最後に各要素を配列に変換します
たとえば、数値46
を配列に変換できます。まず、それをその素因数の配列に変換します。
[2, 23]
数値23
は9
th番目の素数なので2
、空の配列と23
で置き換え[9]
ます。配列は次のようになります。
[[], [9]]
の主な要因9
は3
および3
ですので、
[[], [3, 3]]
両方について同じことを行います3
:
[[], [[2], [2]]]
そして最後に:
[[], [[[]], [[]]]]
今、それをエンコードするために、それぞれの開いている括弧をで置き換え1
、それぞれの閉じている括弧を0
で置き換えて1
から、すべての終了ゼロを削除し、最後から1をドロップします。これは2進数です。上記の例を使用して:
[ ] [ [ [ ] ] [ [ ] ] ]
| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V
1 0 1 1 1 0 0 1 1 0 0 0
ここで、最後の3つのゼロと最後のを単にドロップし1
ます。数10111001
は185
10進数になります。これが期待される出力です。メイン配列の配列からバイナリへの変換ブラケットには含まれていないことに注意してください。
入力
n
より大きい正の整数2
。
出力
エンコードされた整数n
。
ルールとIO形式
- 標準ルールが適用されます。
- 入力は文字列または数値にすることができます(ただし、文字列の場合は、基数10でなければなりません)。
- 出力は文字列または数値にすることができます(ただし、文字列の場合、基数10でなければなりません)。
- これはcode-golfで、バイト単位の最短回答が勝ちです!
テストケース
リクエストに応じてより多くのテストケース。
3 ---> 1
4 ---> 2
5 ---> 3
6 ---> 5
7 ---> 6
8 ---> 10
9 ---> 25
10 ---> 11
10000 ---> 179189987
10001 ---> 944359
10002 ---> 183722
10003 ---> 216499
10004 ---> 2863321
10005 ---> 27030299
10006 ---> 93754
10007 ---> 223005
10008 ---> 1402478
2
、処理するために提出する必要がないため、削除する必要があります。