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/2qui 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,, Nou 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' 2exposant) 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 nnombres de cette séquence, soit sortir le nnuméro de cette séquence.
Exemples
Les exemples ci-dessous sortent le ne 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.0au lieu de 408par exemple.