Un numero omirp è un non-palindromo prime che, una volta invertito, è anche primo.
L'elenco delle emirpe di base 10 è disponibile su OEIS . I primi sei sono:
13, 17, 31, 37, 71, 73
Tuttavia, a causa della regola di inversione, le emirpe sono diverse in ciascuna base. Ad esempio, i primi sei emirp binari sono:
Bin | 1011, 1101, 10111, 11101, 101001, 100101
Dec | (11 , 13 , 23 , 29 , 37 , 41 )
... e in esadecimali, sono:
Hex | 17, 1F, 35, 3B, 3D, 53
Dec | (23, 31, 53, 59, 61, 83)
Curiosità: non ci sono emirpe in unario in quanto ogni numero è un palindromo.
La sfida
Vostro compito è quello di creare una funzione (o programma completo) che prende due parametri, e , e genera un elenco dei primi emirps nella base .
Regole / Dettagli:
- e sono entrambi numeri interi positivi maggiori di .
- Puoi assumere : vale a dire, la base sarà tra binaria ed esidecimale.
- Si dovrebbe essere in grado di calcolare i valori di fino a .
- L'elenco generato può essere nella base o nella base intera standard della tua lingua, purché tu lo specifichi nella tua risposta.
- I controlli emirp integrati non sono consentiti (i test di primalità incorporati vanno bene)
- Non è possibile codificare le emirpe o leggere da qualsiasi file esterno.
- Le scappatoie standard sono vietate, come sempre.
- Questo è code-golf , quindi vince la risposta più breve (in byte).
Casi test
Per ogni caso di test, ho incluso l'elenco in base b
e i suoi equivalenti in base 10.
B = 2, N = 10
BIN: [1011, 1101, 10111, 11101, 100101, 101001, 101011, 101111, 110101, 111101]
DEC: [11, 13, 23, 29, 37, 41, 43, 47, 53, 61]
B = 3, N = 5
BASE3: [12, 21, 102, 201, 1011]
DEC: [5, 7, 11, 19, 31]
B = 12, N = 7
BASE12: [15, 51, 57, 5B, 75, B5, 107]
DEC: [17, 61, 67, 71, 89, 137, 151]
B = 16, N = 4
HEX: [17, 1F, 35, 3B]
DEC: [23, 31, 53, 59]
Puoi testare ulteriormente il tuo programma con il mio esempio Python (non salvato) su repl.it