กำหนดรายชื่อผู้ที่ไม่ว่างเปล่าLของจำนวนเต็มมากกว่า1เรากำหนดd (L)เป็นจำนวนเต็มบวกที่เล็กที่สุดเช่นที่n + D (L)เป็นคอมโพสิตสำหรับแต่ละnในL
เรากำหนดลำดับa nเป็น:
- a 0 = 2
- i + 1หมายเลขที่เล็กที่สุดกว่าฉันดังกล่าวว่าd (ก0 ... ที่ฉันเป็นi + 1 )> d (ก0 ... เป็นฉัน )
งานของคุณ
คุณอาจจะ:
- รับจำนวนเต็มNและส่งคืนค่าN-thของลำดับ (0-indexed หรือ 1-indexed)
- รับจำนวนเต็มNและส่งคืนเงื่อนไขNแรกของลำดับ
- ไม่มีการป้อนข้อมูลและพิมพ์ลำดับตลอดไป
นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!
มันก็โอเคถ้าโค้ดของคุณช้าลงเนื่องจากNมีขนาดใหญ่ขึ้น แต่อย่างน้อยมันควรจะหา 20 เทอมแรกในเวลาน้อยกว่า 2 นาที
เทอมแรก
- 0 = 2และD (2) = 2 (เราจำเป็นต้องเพิ่ม 2 เพื่อให้ 2 + 2 เป็นคอมโพสิต)
- a 1 = 3เพราะd (2, 3) = 6 (เราต้องบวก 6 เพื่อให้ 2 + 6 และ 3 + 6 ประกอบกัน)
- a 2 = 5เพราะd (2, 3, 5) = 7 (เราจำเป็นต้องเพิ่ม 7 ดังนั้น 2 +7, 3 + 7 และ 5 + 7 เป็นคอมโพสิตทั้งหมด) ในขณะที่d (2, 3, 4)ยังคงอยู่ เท่ากับ6
- เป็นต้น
ด้านล่างนี้คือ 100 ลำดับแรกของลำดับ (ไม่ทราบใน OEIS ในขณะที่ทำการโพสต์)
2, 3, 5, 6, 10, 15, 17, 19, 22, 24,
30, 34, 35, 39, 41, 47, 51, 54, 56, 57,
70, 79, 80, 82, 92, 98, 100, 103, 106, 111,
113, 116, 135, 151, 158, 162, 165, 179, 183, 186,
191, 192, 200, 210, 217, 223, 226, 228, 235, 240,
243, 260, 266, 274, 277, 284, 285, 289, 298, 307,
309, 317, 318, 329, 341, 349, 356, 361, 374, 377,
378, 382, 386, 394, 397, 405, 409, 414, 417, 425,
443, 454, 473, 492, 494, 502, 512, 514, 519, 527,
528, 560, 572, 577, 579, 598, 605, 621, 632, 642