Priming a Pristine World


11

Fortemente ispirato dalla programmazione di un mondo incontaminato . Anche strettamente legato a questa sfida .


Definiamo un numero primo incontaminato come un numero che è esso stesso primo, ma non sarà più primo se rimuovete una sottostringa contigua di N base 10 cifre, dove 0 < N < digits in number.

Ad esempio, 409 è un numero primo incontaminato perché 409 stesso è primo, ma tutti i numeri risultanti dalla rimozione di una sottostringa di 1 cifra non sono primi:

40
49
09 = 9

e tutti i numeri risultanti dalla rimozione di sottostringhe di lunghezza 2 non sono primi:

4
9

D'altra parte, il numero primo 439 non è incontaminato. La rimozione delle diverse sottostringhe comporta:

43
49
39
4
9

Mentre 49, 39, 4 e 9 sono tutti non primi, 43 è primo; quindi, 439 non è incontaminato.

2, 3, 5 e 7 sono banalmente incontaminati, dal momento che non è possibile rimuovere alcuna sottostringa.

Sfida

La tua sfida è quella di creare un programma o una funzione che includa un numero intero positivo N e produca l'ennesimo pristine prime. Il codice dovrebbe terminare in meno di 1 minuto su qualsiasi PC moderno per qualsiasi input fino a 50.

Vince il codice più breve in byte.

Come riferimento, ecco i primi 20 numeri primi incontaminati:

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

Ecco un elenco completo di numeri primi incontaminati fino a 1e7 o N = 376.

Infine, ecco due voci OEIS correlate:

  • A033274 : molto simile, ma generato mantenendo le sottostringhe invece di rimuoverle.
  • A071062 : stranamente simile, ma generato in un modo molto diverso.

Risposte:


5

Pyth, 29 byte

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

Seguiranno golf, spiegazioni, ecc.


4

CJam, 51 byte

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

Solo un primo passaggio, questo può probabilmente essere migliorato molto.

Provalo qui.


3

Japt, 61 byte

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

Provalo online!

È un peccato che non abbia ancora implementato i loop in Japt, altrimenti sarebbe un po 'più breve. Continuo a giocare a golf ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.