Une émirpe est un nombre premier non palindromique qui, une fois inversé, est également un nombre premier.
La liste des émirps de base 10 se trouve sur OEIS . Les six premiers sont:
13, 17, 31, 37, 71, 73
Cependant, en raison de la règle d'inversion, les émirps sont différents dans chaque base. Par exemple, les six premiers émirps binaires sont:
Bin | 1011, 1101, 10111, 11101, 101001, 100101
Dec | (11 , 13 , 23 , 29 , 37 , 41 )
... et en hexadécimal, ce sont:
Hex | 17, 1F, 35, 3B, 3D, 53
Dec | (23, 31, 53, 59, 61, 83)
Fait amusant: il n'y a pas d'émirps dans l' unaire car chaque nombre est un palindrome.
Le défi
Votre tâche consiste à créer une fonction (ou un programme complet) qui prend deux paramètres, et , et génère une liste des premiers émirps de la base .
Règles / Détails:
- b 0 et sont tous deux des entiers positifs supérieurs à .
- Vous pouvez supposer : c'est-à-dire que la base sera comprise entre binaire et hexidécimal.
- Vous devriez pouvoir calculer des valeurs de jusqu'à .100
- La liste générée peut être en base , ou en base d'entiers standard de votre langue, tant que vous le spécifiez dans votre réponse.
- Les contrôles Emirp intégrés ne sont pas autorisés (les tests de primalité intégrés sont corrects)
- Vous ne pouvez pas coder en dur les émirps ou lire à partir de fichiers externes.
- Les failles standard sont interdites, comme toujours.
- Il s'agit de code-golf , donc la réponse la plus courte (en octets) l'emporte.
Cas de test
Pour chaque cas de test, j'ai inclus la liste en base b
et ses équivalents 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]
Vous pouvez tester votre programme plus en détail par rapport à mon exemple Python (non golfé) sur repl.it