n > 2
ได้รับจำนวนเต็มบวก เราแปลงเป็นอาร์เรย์ดังนี้
- หากเท่ากับ
2
ส่งคืนอาร์เรย์ว่าง - มิฉะนั้นสร้างอาร์เรย์ของ
n
ปัจจัยสำคัญทั้งหมดที่เรียงลำดับจากน้อยไปมากจากนั้นแต่ละองค์ประกอบจะแทนที่ด้วยดัชนีในลำดับตัวเลขจำนวนมากและในที่สุดก็เปลี่ยนแต่ละองค์ประกอบเป็นอาร์เรย์
ตัวอย่างเช่นให้แปลงตัวเลข46
เป็นอาร์เรย์ ประการแรกเปลี่ยนให้เป็นอาเรย์ของปัจจัยหลัก:
[2, 23]
จำนวน23
เป็น9
วันที่สำคัญดังนั้นแทนที่2
กับอาร์เรย์ที่ว่างเปล่าและมี23
[9]
ตอนนี้ Array จะกลายเป็น:
[[], [9]]
ปัจจัยสำคัญของการ9
เป็น3
และ3
ดังนั้น:
[[], [3, 3]]
ทำเช่นเดียวกันสำหรับทั้งสอง3
:
[[], [[2], [2]]]
และในที่สุดก็:
[[], [[[]], [[]]]]
ตอนนี้เพื่อเข้ารหัสมันเราเพียงแค่แทนที่วงเล็บเปิดแต่ละอัน1
และแต่ละวงเล็บปิดด้วย0
แล้วเอาศูนย์สิ้นสุดทั้งหมดแล้วปล่อยหนึ่ง1
จากท้าย นี่คือเลขฐานสองของเรา ใช้ตัวอย่างข้างต้น:
[ ] [ [ [ ] ] [ [ ] ] ]
| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V
1 0 1 1 1 0 0 1 1 0 0 0
1
ตอนนี้ก็ลดลงในช่วงสามศูนย์และที่ผ่านมา จำนวนกลาย10111001
เป็น185
เลขทศนิยม นั่นคือผลลัพธ์ที่คาดหวัง ขอให้สังเกตว่าในอาเรย์ไปเป็นวงเล็บการแปลงแบบไบนารีของอาเรย์หลักจะไม่รวมอยู่
อินพุต
จำนวนเต็มบวกมากกว่า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
เนื่องจากไม่จำเป็นต้องส่งผลงาน