รองพื้นโลกที่เก่าแก่


11

แรงบันดาลใจอย่างมากจากการเขียนโปรแกรมที่เก่าแก่โลก นอกจากนี้ยังเกี่ยวข้องกับความท้าทายนี้


ลองกำหนดที่สำคัญที่เก่าแก่เป็นจำนวนซึ่งเป็นตัวสำคัญ แต่จะไม่สำคัญหากคุณลบย่อยที่ต่อเนื่องกันใด ๆ ของฐาน N 10 0 < N < digits in numberหลักที่

ตัวอย่างเช่น 409 เป็นไพรม์ที่เก่าแก่เพราะ 409 เป็นไพร์มที่สำคัญ แต่ตัวเลขทั้งหมดที่เกิดจากการลบซับสตริง 1 หลักไม่ใช่ไพร์ม:

40
49
09 = 9

และตัวเลขทั้งหมดที่เกิดจากการลบสตริงย่อยของความยาว 2 นั้นไม่ได้เป็นจำนวนเฉพาะ:

4
9

ในทางกลับกันหมายเลขเฉพาะ 439 ไม่ใช่บริสุทธิ์ การลบสตริงย่อยต่างกันส่งผลให้:

43
49
39
4
9

ในขณะที่ 49, 39, 4 และ 9 ล้วน แต่ไม่สำคัญ แต่ 43 นั้นก็สำคัญ ดังนั้น 439 ไม่ใช่บริสุทธิ์

2, 3, 5 และ 7 นั้นมีความเก่าแก่เล็กน้อยเนื่องจากไม่สามารถลบวัสดุพิมพ์ได้

ท้าทาย

ความท้าทายของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวก N และแสดงผลไพรม์ไพรม์ Nth รหัสควรเสร็จในไม่เกิน 1 นาทีบนพีซีที่ทันสมัยสำหรับการป้อนข้อมูลสูงสุด 50

รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

เป็นการอ้างอิงนี่คือ 20 ครั้งแรกที่เก่าแก่:

N    Pristine prime
1    2
2    3
3    5
4    7
5    11
6    19
7    41
8    61
9    89
10   409
11   449
12   499
13   821
14   881
15   991
16   6299
17   6469
18   6869
19   6899
20   6949

นี่คือรายการที่สมบูรณ์ของช่วงเวลาที่เก่าแก่มากถึง 1e7 หรือ N = 376

ในที่สุดนี่คือรายการ OEIS ที่เกี่ยวข้องสองรายการ:

  • A033274 : คล้ายกันมาก แต่สร้างขึ้นโดยการเก็บรักษาสตริงย่อยแทนที่จะลบออก
  • A071062 : คล้ายกันอย่างผิดปกติ แต่สร้างขึ้นในลักษณะที่แตกต่างกันมาก

คำตอบ:


5

Pyth, 29 ไบต์

e.f>}ZPZsmq1lPs.D`Z}Fd.CU`Z2Q

การเล่นกอล์ฟคำอธิบาย ฯลฯ เพื่อติดตาม



3

Japt, 61 ไบต์

$while(V<U)T$°,W=Ts ,Tj «Wl o d@1o1-X+Wl)dZ{WjYZ n j} } ©V°;T

ลองออนไลน์!

มันเป็นความอัปยศที่ฉันยังไม่ได้ติดตั้งลูปใน Japt มิฉะนั้นจะสั้นกว่านี้เล็กน้อย ยังคงเล่นกอล์ฟ ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.