Un emirp es un primo no palindrómico que, cuando se invierte, también es primo.
La lista de emirps de base 10 se puede encontrar en OEIS . Los primeros seis son:
13, 17, 31, 37, 71, 73
Sin embargo, debido a la regla de reversión, los emirps son diferentes en cada base. Por ejemplo, los primeros seis emirps binarios son:
Bin | 1011, 1101, 10111, 11101, 101001, 100101
Dec | (11 , 13 , 23 , 29 , 37 , 41 )
... y en hexadecimal, son:
Hex | 17, 1F, 35, 3B, 3D, 53
Dec | (23, 31, 53, 59, 61, 83)
Dato curioso: no hay emirps en unario ya que cada número es un palíndromo.
El reto
Su tarea es crear una función (o programa completo) que tome dos parámetros, y , y genere una lista de los primeros emirps en la base .
Reglas / Detalles:
- b 0 y son enteros positivos mayores que .
- Puede suponer : es decir, la base estará entre binario y hexadecimal.
- Debería poder calcular valores de hasta 100 .
- La lista generada puede estar en la base , o en la base de enteros estándar de su idioma, siempre que especifique esto en su respuesta.
- Las comprobaciones de emirp integradas no están permitidas (las pruebas de primalidad integradas están bien)
- No puede codificar los emirps o leer archivos externos.
- Las lagunas estándar están prohibidas, como siempre.
- Este es el código de golf , por lo que gana la respuesta más corta (en bytes).
Casos de prueba
Para cada caso de prueba, he incluido la lista en base b
y sus equivalentes en 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]
Puede probar su programa aún más con mi ejemplo de Python (sin golf) en repl.it