ลองจินตนาการว่าเรามีจำนวนเต็มบวกจำนวน จำกัด ชุดนี้สามารถแสดงเป็นเส้นของจุดที่แต่ละจำนวนเต็มปัจจุบันในชุดที่เต็มไปเช่น Scantron หรือหมัดบัตร ตัวอย่างเช่นชุด{1,3,4,6}
สามารถแสดงเป็น:
*.**.*
*
แสดงถึงสมาชิกของชุดของเราและ.
แสดงถึงจำนวนเต็มที่ไม่ได้เป็นสมาชิกของเขาตั้ง
ชุดเหล่านี้มี "ปัจจัย" Loosely x เป็นปัจจัยของ y หาก y สามารถสร้างจากสำเนาของ x ได้ คำจำกัดความของปัจจัยของเรามีความเข้มงวดมากขึ้น
- x เป็นปัจจัยของ y ถ้าหาก y เป็นสหภาพของจำนวนชุดที่แยกจากกันทั้งหมดนี้เป็น x ที่มีออฟเซ็ต
เราจะเรียกปัจจัยของเพราะทำค่อนข้างชัดเจนขึ้นจากสองสำเนาของใส่จนจบ*.*
*.**.*
*.*
*.**.*
------
*.*...
...*.*
ปัจจัยไม่จำเป็นต้องจบสิ้นเราก็จะบอกว่า*.*
เป็นปัจจัย*.*.*.*
*.*.*.*
-------
*.*....
....*.*
ปัจจัยยังสามารถทับซ้อนกัน วิธีการ*.*
นี้ยังเป็นปัจจัย****
****
----
*.*.
.*.*
อย่างไรก็ตามตัวเลขไม่สามารถครอบคลุมได้มากกว่าหนึ่งครั้ง ตัวอย่าง*.*
คือไม่ได้*.*.*
ปัจจัยของ
นี่คือตัวอย่างที่ซับซ้อนมากขึ้น:
*..*.**..***.*.*
นี่*..*.*
เป็นปัจจัย *..*.*
คุณจะเห็นว่าด้านล่างที่ผมได้เรียงรายขึ้นสามกรณีของ
*..*.**..***.*.*
----------------
*..*.*..........
......*..*.*....
..........*..*.*
งาน
รับชุดโดยการแสดงผลลัพธ์ที่สมเหตุสมผลทุกชุดที่เป็นปัจจัยของอินพุต
คุณสามารถจัดทำดัชนีตามค่าใด ๆ (นั่นคือคุณอาจเลือกจำนวนที่น้อยที่สุดที่สามารถมีอยู่ในอินพุต) คุณอาจสมมติว่าชุดอินพุตจะมีค่าน้อยที่สุดเสมอ
นี่เป็นคำถามเกี่ยวกับการเขียนโค้ดดังนั้นคุณควรตั้งเป้าหมายให้สั้นที่สุดเท่าที่จะเป็นไปได้
กรณีทดสอบ
กรณีทดสอบเหล่านี้ทำด้วยมืออาจมีข้อผิดพลาดหรือสองกรณีในกรณีที่มีขนาดใหญ่กว่า
* -> *
*.*.* -> *, *.*.*
*.*.*.* -> *, *.*, *...*, *.*.*.*
****** -> *, **, *..*, ***, *.*.*, ******
*..*.**..***.*.* -> *, *..*.*, *.....*...*, *..*.**..***.*.*
*...*****.**.** -> *, *...**.**, *.....*, *...*****.**.**
*.*.*
= x+x^2+x^4
แล้ว1+x+x^2
= ***
จะเป็นตัวหารใช่ไหม x+x^2+x^4 = (1-x+x^2)(1+x+x^2)
*
ถูกระบุว่าเป็นปัจจัยที่หมายถึงเซตเช่นเดียวกับหรือ*.
*..
[1,3,5,7]
สำหรับ*.*.*.*
) เราจะถือว่ามันเรียงได้หรือไม่?