Napełnianie nieskazitelnego świata

11

Mocno zainspirowany Programowaniem nieskazitelnego świata . Również ściśle związany z tym wyzwaniem .


Zdefiniujmy nieskazitelną liczbę pierwszą jako liczbę, która sama jest liczbą pierwszą, ale nie będzie już liczbą pierwszą, jeśli usuniesz ciągłe podciągi N cyfr 10, gdzie 0 < N < digits in number.

Na przykład 409 jest nieskazitelną liczbą pierwszą, ponieważ sama 409 jest liczbą pierwszą, ale wszystkie liczby wynikające z usunięcia podłańcucha 1 cyfry nie są liczbą pierwszą:

40
49
09 = 9

a wszystkie liczby wynikające z usunięcia podciągów o długości 2 nie są liczbą pierwszą:

4
9

Z drugiej strony liczba pierwsza 439 nie jest nieskazitelna. Usunięcie różnych podciągów powoduje:

43
49
39
4
9

Podczas gdy 49, 39, 4 i 9 są niepierwotne, 43 jest liczbą pierwszą; dlatego 439 nie jest nieskazitelny.

2, 3, 5 i 7 są nieskazitelnie czyste, ponieważ nie można usunąć żadnych podciągów.

Wyzwanie

Wyzwanie polega na utworzeniu programu lub funkcji, która przyjmuje dodatnią liczbę całkowitą N i wysyła N-tą nieskazitelną liczbę pierwszą. Kod powinien zakończyć się w niecałą minutę na każdym nowoczesnym komputerze PC dla dowolnego wejścia do 50.

Najkrótszy kod w bajtach wygrywa.

Jako odniesienie, oto pierwsze 20 dziewiczych liczb pierwszych:

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

Oto pełna lista nieskazitelnych liczb pierwszych do 1e7 lub N = 376.

Wreszcie, oto dwa powiązane wpisy OEIS:

  • A033274 : bardzo podobny, ale generowany przez przechowywanie podciągów zamiast ich usuwania.
  • A071062 : dziwnie podobny, ale generowany w znacznie inny sposób.
ETHprodukcje
źródło

Odpowiedzi:

5

Pyth, 29 bajtów

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

Gra w golfa, wyjaśnienia itp. Do naśladowania.

isaacg
źródło
4

CJam, 51 bajtów

1ri{{)_mp1$s_,)2m*{:>},\f{\~2$<@@>+0e|imp}1b!&!}g}*

Tylko pierwsze przejście, prawdopodobnie można to znacznie poprawić.

Sprawdź to tutaj.

Martin Ender
źródło
3

Japt, 61 bajtów

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

Wypróbuj online!

Szkoda, że ​​nie wdrożyłem jeszcze pętli w Japt, w przeciwnym razie byłoby to trochę krótsze. Wciąż gra w golfa ...

ETHprodukcje
źródło