พื้นหลัง
ผู้คนกำลังพูดถึงการแยกตัวประกอบที่สำคัญในการแชทและเราพบว่าตัวเองกำลังพูดถึงการจ่ายคืน Repunitsเป็นส่วนหนึ่งของตัวเลขที่รู้จักกันเป็น repdigits ซึ่งเป็นตัวเลขที่ประกอบด้วยตัวเลขเพียงการทำซ้ำเช่น222หรือ4444444444444444แต่ repunits 1มีเพียงของ
repunits คู่แรกจึง1, 11, 111ฯลฯ เหล่านี้จะถูกอ้างถึงโดยR nดังนั้นR 1 = 1, R 2 = 11ฯลฯ และจะถูกสร้างโดยสูตรด้วยR(n) = (10^n - 1)/9n > 0
การแยกตัวประกอบเฉพาะของหมายเลขการจ่ายซ้ำเหล่านี้ตามลำดับA102380ใน OEIS ตัวอย่างเช่น:
R 1 = 1
R 2 = 11
R 3 = 111 = 3 * 37
R 4 = 1111 = 11 * 101
R 5 = 11111 = 41 * 271
R 6 = 111111 = 3 * 7 * 11 * 13 * 37
R 7 = 1111111 = 239 * 4649
...
ความท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นซึ่งเมื่อได้รับการป้อนข้อมูลจำนวนเต็มnกับn >= 2ผ่านSTDIN หรือเทียบเท่าผลผลิตหรือผลตอบแทนนวนิยายปัจจัยที่สำคัญสำหรับR nในรูปแบบที่สะดวกใด ๆ "ปัจจัยสำคัญนวนิยาย" นี่หมายถึงทุกสิ่งxที่xเป็นปัจจัยสำคัญของR nแต่xไม่ใช่ปัจจัยสำคัญสำหรับR kใด ๆ ก่อนหน้าด้วย1 <= k < n(เช่นถ้าเราเขียนปัจจัยสำคัญสำหรับRทั้งหมดตามลำดับเราไม่เห็นxก่อน).
ตัวอย่าง
Input: 6
Output: 7, 13
(because 3, 11, and 37 are factors of a smaller R_k)
Input: 19
Output: 1111111111111111111
(because R_19 is prime, so no other factors)
Input: 24
Output: 99990001
(because 3, 7, 11, 13, 37, 73, 101, 137, 9901 are factors of a smaller R_k)
Input: 29
Output: 3191, 16763, 43037, 62003, 77843839397
(because no factors of R_29 are also factors of a smaller R_k)
ความพิเศษ:
n < 2รหัสของคุณสามารถทำอะไรหรือไม่มีอะไรถ้า- คุณสามารถใช้ขีด จำกัด บนสุดที่ "สมเหตุสมผล"
nสำหรับการทดสอบและการดำเนินการ - โค้ดของคุณจะไม่ถูกคาดหวังว่าจะส่งออกn = 10000000ตัวอย่างเช่น แต่อัลกอริทึมของคุณควรทำงานในกรณีดังกล่าว - นี่คือเว็บไซต์ที่อุทิศให้กับค่าใช้จ่ายสำหรับการอ้างอิง
- ฉันไม่ได้ผ่านทางคณิตศาสตร์ แต่ผมเสนอสมมติฐานที่ว่าทุกnมีผลแตกต่างกันสำหรับขั้นตอนวิธีนี้ - นั่นคือไม่มีnอยู่เช่นว่าR nไม่มีปัจจัยนวนิยาย
ฉันจะเสนอค่าหัว 250 จุดถ้ามีคนพิสูจน์หรือหักล้างในคำตอบของพวกเขาโทมัสควาเสนอหลักฐานที่สง่างามและฉันได้รับรางวัล
