ระบบจำนวนปัจจัยที่เรียกว่า factoradic เป็นระบบเลข Radix ผสม แฟคทอเรียลกำหนดค่าสถานที่ของตัวเลข
ในระบบนี้ตัวเลขที่ถูกต้องที่สุดอาจเป็น 0 หรือ 1 หลักขวาสุดที่สองสามารถเป็น 0, 1 หรือ 2 และอื่น ๆ ซึ่งหมายความว่าnตัวเลขตัวประกอบตัวเลขสามารถมีค่าสูงสุด(n + 1)!ได้
ตัวอย่างเช่นในการแปลงจำนวนตัวประกอบ24201ให้เป็นทศนิยมคุณต้องดำเนินการดังนี้
2 * 5! = 240
4 * 4! = 96
2 * 3! = 12
0 * 2! = 0
1 * 1! = 1
240 + 96 + 12 + 0 + 1 = 349
ดังนั้นจำนวน factoradic 24201เป็นฐาน34910
ในการแปลงตัวเลขทศนิยม (พร้อม349ตัวอย่าง) เป็นตัวเลขตัวประกอบคุณต้องทำดังนี้
ใช้แฟกทอเรียลที่ใหญ่ที่สุดน้อยกว่าจำนวน ในกรณีนี้มันเป็นหรือ1205!
349 / 5! = 2 r 109
109 / 4! = 4 r 13
13 / 3! = 2 r 1
1 / 2! = 0 r 1
1 / 1! = 1 r 0
ดังนั้น349ฐานเป็นจำนวน10 factoradic24201
ความท้าทายของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดที่แปลงหมายเลขอินพุตไปยังฐานอื่น
อินพุตจะเป็นการแทนสตริงของจำนวนเต็มที่ไม่เป็นลบ ตัวเลขตัวประกอบจะถูกนำหน้าด้วย!(เช่น!24201) ในขณะที่ตัวเลขทศนิยมจะไม่นำหน้าด้วยอะไร คุณอาจจะคิดว่าการป้อนข้อมูลสูงสุดที่จะเป็น10! - 1- 3628799ในทศนิยมและ987654321ใน factoradic ซึ่งหมายความว่าตัวอักษรจะไม่ปรากฏในอินพุต / เอาต์พุตตัวประกอบ
โปรแกรมไม่จำเป็นต้อง!เพิ่มเอาท์พุตที่เป็นตัวประกอบและอาจส่งออกสตริงหรือจำนวนเต็ม อินพุตอาจอยู่ในรูปแบบที่สมเหตุสมผล
กรณีทดสอบ:
Input: 1234
Output: 141120
Input: 746
Output: 101010
Input: !54321
Output: 719
Input: !30311
Output: 381
⍴⍵∩'!'ด้วย'!'∊⍵เพื่อบันทึกตัวละคร