พื้นหลัง
ผู้คนกำลังพูดถึงการแยกตัวประกอบที่สำคัญในการแชทและเราพบว่าตัวเองกำลังพูดถึงการจ่ายคืน Repunitsเป็นส่วนหนึ่งของตัวเลขที่รู้จักกันเป็น repdigits ซึ่งเป็นตัวเลขที่ประกอบด้วยตัวเลขเพียงการทำซ้ำเช่น222
หรือ4444444444444444
แต่ repunits 1
มีเพียงของ
repunits คู่แรกจึง1
, 11
, 111
ฯลฯ เหล่านี้จะถูกอ้างถึงโดยR nดังนั้นR 1 = 1
, R 2 = 11
ฯลฯ และจะถูกสร้างโดยสูตรด้วยR(n) = (10^n - 1)/9
n > 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 จุดถ้ามีคนพิสูจน์หรือหักล้างในคำตอบของพวกเขาโทมัสควาเสนอหลักฐานที่สง่างามและฉันได้รับรางวัล