Stark inspiriert von der Programmierung einer unberührten Welt . Auch eng mit dieser Herausforderung verbunden .
Definieren wir eine makellose Primzahl als eine Zahl, die selbst eine Primzahl ist, aber keine Primzahl mehr ist, wenn Sie eine zusammenhängende Teilzeichenfolge mit N Ziffern der Basis 10 entfernen, wobei 0 < N < digits in number
.
Zum Beispiel ist 409 eine makellose Primzahl, weil 409 selbst eine Primzahl ist, aber alle Zahlen, die sich aus dem Entfernen einer Teilzeichenfolge mit einer Ziffer ergeben, sind keine Primzahlen:
40
49
09 = 9
und alle Zahlen, die sich aus dem Entfernen von Teilzeichenfolgen der Länge 2 ergeben, sind keine Primzahlen:
4
9
Andererseits ist die Primzahl 439 nicht makellos. Das Entfernen der verschiedenen Teilzeichenfolgen führt zu:
43
49
39
4
9
Während 49, 39, 4 und 9 sind alle nicht-prime, 43 ist prime; somit ist 439 nicht makellos.
2, 3, 5 und 7 sind trivial makellos, da keine Teilzeichenfolgen entfernt werden können.
Herausforderung
Ihre Herausforderung besteht darin, ein Programm oder eine Funktion zu erstellen, die eine positive ganze Zahl N aufnimmt und die N-te makellose Primzahl ausgibt. Der Code sollte auf jedem modernen PC für Eingaben bis zu 50 in weniger als 1 Minute fertig sein.
Der kürzeste Code in Bytes gewinnt.
Als Referenz sind hier die ersten 20 makellosen Primzahlen:
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
Hier ist eine vollständige Liste der makellosen Primzahlen bis zu 1e7 oder N = 376.
Schließlich sind hier zwei verwandte OEIS-Einträge:
- A033274 : sehr ähnlich, aber generiert, indem Teilzeichenfolgen beibehalten werden, anstatt sie zu entfernen.
- A071062 : seltsamerweise ähnlich, aber auf ganz andere Weise erzeugt.
quelle