แรงบันดาลใจจากคำถาม Math.SEนี้
พื้นหลัง
ลำดับ Fibonacci (เรียกว่าF
) เป็นลำดับที่เริ่มต้น0, 1
ดังกล่าวว่าแต่ละหมายเลข ( F(n)
) (หลังจากครั้งแรกที่สอง) คือผลรวมของทั้งสองก่อนที่มัน ( F(n) = F(n-1) + F(n-2)
)
Fibonacci Sequence mod K (เรียกว่าM
) เป็นลำดับของหมายเลข Fibonacci mod mod K ( M(n) = F(n) % K
)
สามารถแสดงให้เห็นว่า Fibonacci Sequence mod K เป็นวงจรสำหรับ K ทั้งหมดเนื่องจากแต่ละค่าถูกกำหนดโดยคู่ก่อนหน้าและมี K 2คู่ที่เป็นไปได้ของจำนวนเต็มไม่เป็นลบทั้งคู่น้อยกว่า K เนื่องจากลำดับ Fibonacci mod K เป็นวัฏจักรหลังจากคำศัพท์ซ้ำคู่แรกของจำนวนที่ไม่ปรากฏใน Fibonacci Sequence mod K ก่อนที่คำซ้ำคู่แรกจะไม่ปรากฏขึ้น
สำหรับ K = 4
0 1 1 2 3 1 0 1 ...
สำหรับ K = 8
0 1 1 2 3 5 0 5 5 2 7 1 0 1 ...
โปรดสังเกตว่าสำหรับ K = 8, 4 และ 6 จะไม่ปรากฏก่อนทำซ้ำ0 1
ดังนั้น 4 และ 6 จะไม่ปรากฏใน Fibonacci Sequence mod 8
ท้าทาย
รับค่าจำนวนเต็ม K อย่างเคร่งครัดมากกว่า 0 ส่งออกจำนวนเต็มแบบไม่ลบทั้งหมดน้อยกว่า K ที่ไม่ปรากฏใน Fibonacci Sequence mod K
กฎระเบียบ
คุณสามารถสันนิษฐานได้ว่าKจะพอดีกับชนิดจำนวนเต็มดั้งเดิมของคุณ ( ภายในเหตุผล )
หากมีตัวเลขที่ไม่เป็นลบน้อยกว่า K ที่ไม่ปรากฏใน Fibonacci Sequence mod K โปรแกรม / ฟังก์ชั่นของคุณควรแสดงตัวเลขดังกล่าวทั้งหมดในลักษณะที่สมเหตุสมผล
หากไม่มีจำนวนเต็มลบที่น้อยกว่า K ที่ไม่ปรากฏใน Fibonacci Sequence mod K โปรแกรม / ฟังก์ชั่นของคุณอาจระบุสิ่งนี้ได้โดยส่งคืนรายการว่างเปล่าไม่พิมพ์อะไรสร้างข้อผิดพลาด ฯลฯ
สั่งซื้อไม่เป็นไร
นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในแต่ละภาษาจะชนะ
กรณีทดสอบ
กรณีทดสอบที่ไม่ว่างเปล่า
8 [4, 6]
11 [4, 6, 7, 9]
12 [6]
13 [4, 6, 7, 9]
16 [4, 6, 10, 12, 14]
17 [6, 7, 10, 11]
18 [4, 6, 7, 9, 11, 12, 14]
19 [4, 6, 7, 9, 10, 12, 14]
21 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 19]
22 [4, 6, 7, 9, 15, 17, 18, 20]
23 [4, 7, 16, 19]
24 [4, 6, 9, 11, 12, 14, 15, 18, 19, 20, 22]
26 [4, 6, 7, 9, 17, 19, 20, 22]
28 [10, 12, 14, 16, 18, 19, 23]
29 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27]
31 [4, 6, 9, 12, 14, 15, 17, 18, 19, 22, 25, 29]
32 [4, 6, 10, 12, 14, 18, 20, 22, 26, 28, 30]
33 [4, 6, 7, 9, 15, 17, 18, 20, 24, 26, 27, 28, 29, 31]
34 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 30]
36 [4, 6, 7, 9, 10, 11, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32]
37 [9, 10, 14, 17, 20, 23, 27, 28]
38 [4, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 36]
39 [4, 6, 7, 9, 15, 17, 19, 20, 22, 24, 30, 32, 33, 35]
...
200 [4, 6, 12, 14, 20, 22, 28, 30, 36, 38, 44, 46, 52, 54, 60, 62, 68, 70, 76, 78, 84, 86, 92, 94, 100, 102, 108, 110, 116, 118, 124, 126, 132, 134, 140, 142, 148, 150, 156, 158, 164, 166, 172, 174, 180, 182, 188, 190, 196, 198]
...
300 [6, 18, 30, 42, 54, 66, 78, 90, 102, 114, 126, 138, 150, 162, 174, 186, 198, 210, 222, 234, 246, 258, 270, 282, 294]
...
400 [4, 6, 10, 12, 14, 20, 22, 26, 28, 30, 36, 38, 42, 44, 46, 52, 54, 58, 60, 62, 68, 70, 74, 76, 78, 84, 86, 90, 92, 94, 100, 102, 106, 108, 110, 116, 118, 122, 124, 126, 132, 134, 138, 140, 142, 148, 150, 154, 156, 158, 164, 166, 170, 172, 174, 180, 182, 186, 188, 190, 196, 198, 202, 204, 206, 212, 214, 218, 220, 222, 228, 230, 234, 236, 238, 244, 246, 250, 252, 254, 260, 262, 266, 268, 270, 276, 278, 282, 284, 286, 292, 294, 298, 300, 302, 308, 310, 314, 316, 318, 324, 326, 330, 332, 334, 340, 342, 346, 348, 350, 356, 358, 362, 364, 366, 372, 374, 378, 380, 382, 388, 390, 394, 396, 398]
...
กรณีทดสอบเปล่า (ไม่มีเอาต์พุต, ข้อผิดพลาด, รายการว่างเปล่า, ฯลฯ เป็นเอาต์พุตที่ยอมรับได้)
1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 20, 25, 27, 30, 35 ... 100 ...