Fortement inspiré par la programmation d'un monde vierge . Également étroitement lié à ce défi .
Définissons un premier vierge comme un nombre qui est lui-même premier, mais ne sera plus premier si vous supprimez toute sous-chaîne contiguë de N base 10 chiffres, où 0 < N < digits in number
.
Par exemple, 409 est un nombre premier vierge, car 409 lui-même est premier, mais tous les nombres résultant de la suppression d'une sous-chaîne de 1 chiffre ne sont pas premiers:
40
49
09 = 9
et tous les nombres résultant de la suppression de sous-chaînes de longueur 2 ne sont pas premiers:
4
9
D'un autre côté, le nombre premier 439 n'est pas vierge. La suppression des différentes sous-chaînes entraîne:
43
49
39
4
9
Alors que 49, 39, 4 et 9 ne sont pas tous des nombres premiers, 43 est premier; ainsi, 439 n'est pas vierge.
2, 3, 5 et 7 sont trivialement vierges, car aucune sous-chaîne ne peut être supprimée.
Défi
Votre défi est de créer un programme ou une fonction qui accepte un entier positif N et génère le Nième nombre premier. Le code devrait se terminer en moins d'une minute sur n'importe quel PC moderne pour toute entrée jusqu'à 50.
Le code le plus court en octets gagne.
À titre de référence, voici les 20 premiers nombres premiers vierges:
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
Voici une liste complète des nombres premiers vierges jusqu'à 1e7, ou N = 376.
Enfin, voici deux entrées OEIS liées:
la source