คอลเลกชันของจำนวนเต็มบวกd_1 d_2 ... d_k
คือการแยกตัวประกอบของจำนวนเต็มบวกn
ถ้า
d_1 * d_2 * ... * d_k = n
เลขจำนวนเต็มบวกแต่ละตัวมีการแยกตัวประกอบเฉพาะที่สำคัญแต่โดยทั่วไปแล้วพวกมันยังมีตัวประกอบที่ซึ่งคำบางคำประกอบกัน เช่น
12 = 6 * 2 = 4 * 3 = 3 * 2 * 2
เขียนโปรแกรมฟังก์ชั่นคำกริยาหรือสิ่งที่คล้ายกันซึ่งรับอินพุตเป็นจำนวนเต็มบวกเดียวและส่งคืนหรือพิมพ์รายการทั้งหมดของตัวประกอบที่แตกต่างกัน ตัวประกอบอาจถูกสร้างขึ้นในลำดับใด ๆ และเงื่อนไขอาจอยู่ในลำดับใดก็ได้ แต่ไม่ควรมีการเรียงสับเปลี่ยนกัน Factorisations อาจยังไม่รวม1
กับสองข้อยกเว้น: สำหรับการป้อนข้อมูลn
ที่คุณอาจจะให้ factorisation n*1
แทนn
; และสำหรับการป้อนข้อมูล1
คุณอาจให้การแยกตัวประกอบ1
แทนรายการว่างเปล่า
คุณอาจคิดว่าอินพุตจะอยู่ในช่วงของจำนวนเต็ม 32- บิตที่ลงชื่อแล้ว ถ้าผลการเป็นสตริงควรจะมีความแตกต่างที่ชัดเจนระหว่างการปักปันเขตของตัวเลขภายใน factorisation และการปักปันเขตของ factorisations ที่ แต่ก็ไม่จำเป็น (ตัวอย่าง) *
สำหรับปัจจัยที่จะเข้าร่วมกับ
รหัสของคุณควรสามารถจัดการอินพุตที่ถูกต้องภายใน 10 นาทีบนเครื่องเดสก์ท็อปที่เหมาะสม
ตัวอย่าง
1 [[]]
or [[1]]
or [[1 1]]
7 [[7]]
or [[7 1]]
or [[1 7]]
12 [[12] [6 2] [4 3] [2 3 2]]
or variants
16 [[2 2 2 2] [2 2 4] [2 8] [4 4] [16]]
or variants
901800900 a list of 198091 factorisations
1338557220 a list of 246218 factorisations
901800900
และที่1338557220
อื่นที่เราสามารถตรวจสอบได้หรือไม่? รหัสของฉันให้ฉัน 2048 และ 1024 factorizations สำหรับตัวเลขเหล่านั้นตามลำดับและฉันไม่แน่ใจว่าทำไม