Plus précisément, le PRIMEGAME de Conway .
Il s'agit d'un algorithme conçu par John H. Conway pour générer des nombres premiers en utilisant une séquence de 14 nombres rationnels:
A B C D E F G H I J K L M N
17 78 19 23 29 77 95 77 1 11 13 15 15 55
-- -- -- -- -- -- -- -- -- -- -- -- -- --
91 85 51 38 33 29 23 19 17 13 11 14 2 1
Par exemple, F est la fraction 77/29
.
Voici donc comment l'algorithme trouve les nombres premiers. En commençant par le nombre 2
, recherchez la première entrée de la séquence qui, lorsqu'elle est multipliée, produit un entier. Ici , il est M
, 15/2
qui produit 15
. Ensuite, pour cet entier 15
, recherchez la première entrée de la séquence qui, multipliée, produit un entier. C'est le dernier,, N
ou 55/1
, qui cède 825
. Notez la séquence correspondante. (Les plus avisés d'entre vous peuvent reconnaître cela comme un programme FRACTRAN .)
Après quelques itérations, vous obtiendrez les éléments suivants:
2, 15, 825, 725, 1925, 2275, 425, 390, 330, 290, 770, 910, 170, 156, 132, 116, 308, 364, 68, 4 ...
Notez que le dernier élément répertorié est 4
, ou 2^2
. Voici notre premier nombre premier (l' 2
exposant) généré avec cet algorithme! Finalement, la séquence ressemblera à ceci:
2 ... 2^2 ... 2^3 ... 2^5 ... 2^7 ... etc.
Ainsi, donnant les nombres premiers. Il s'agit d' OEIS A007542 .
Le défi
Étant donné un numéro d'entrée n
, soit zéro, soit un indexé (votre choix), vous pouvez soit sortir les premiers n
nombres de cette séquence, soit sortir le n
numéro de cette séquence.
Exemples
Les exemples ci-dessous sortent le n
e terme de la séquence indexée zéro.
n output
5 2275
19 4
40 408
Règles
- Le cas échéant, vous pouvez supposer que l'entrée / sortie s'adaptera au type Integer natif de votre langue.
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
408.0
au lieu de 408
par exemple.