Étant donné un nombre n, imprimez le nième nombre de Fermat premier , où les nombres de Fermat sont de la forme 2 2 k +1. Ce code devrait théoriquement fonctionner pour tout n (c'est-à-dire ne pas le coder en dur), bien qu'il ne devrait pas se terminer pour n> 4. (Il ne devrait pas retourner 4294967297 pour n = 5, car 4294967297 n'est pas un nombre premier.)
Notez que si tous les nombres premiers de Fermat sont de la forme 2 2 n +1, tous les nombres de la forme 2 2 n +1 ne sont pas premiers. Le but de ce défi est de rendre le nième nombre premier.
Cas de test
0 -> 3
1 -> 5
2 -> 17
3 -> 257
4 -> 65537
Règles
- Les failles standard ne sont pas autorisées.
- L'indexation 0 et l'indexation 1 sont toutes deux acceptables.
- Il s'agit du code-golf , le plus petit nombre de victoires d'octets.
Connexes: n-gons constructibles
2^(2^n) + 1
, oùn
est l'entrée? Cela correspond à vos cas de test (que nous savons déjà excellents, il n'est donc pas nécessaire de vérifier). Et vous ne vous attendez pas à ce que le programme fonctionne où n> 4 (et n = 5 est le premier non premier).n=1:4
. Tous les nombres premiers fermat sont de la forme2^2^n+1
, mais cela ne signifie pas que tous les nombres de la forme2^2^n+1
sont réellement premiers. C'est le casn=1:4
, mais pasn=5
par exemple.n
et que la sortie doit être de la forme2^(2^n)+1
. Si vous utilisez différentes variables pour l'entrée et l'exposant, une certaine confusion peut être réduite. Cela peut également aider si vous déclarez explicitement que "n = 5 n'a pas besoin de sortir dans un délai raisonnable, mais qu'il ne doit pas sortir 4294967297"Réponses:
Python 2 , 53 octets
Essayez-le en ligne!
Utilise le test de Pépin .
Python 2 , 54 octets
Essayez-le en ligne!
la source
Gelée ,
1311 octetsUtilise l'indexation basée sur 1.
Essayez-le en ligne!
Comment ça fonctionne
la source
ṛ
pour effacer le résultat ... TILÆẸ
au lieu de2*
pour un seul entier ... TILPerl 6 ,
4542 octetsEssayez-le
Essayez-le
Étendu:
la source
Mathematica, 56 octets
Essayez-le en ligne!
la source
Pyth , 14 octets
Essayez-le en ligne!
Utilise l'indexation 1.
la source
Pyth , 14 octets
Essayez en ligne.
Idée principale "empruntée" à la réponse de xnor dans une autre question
la source
05AB1E , 8 octets
Code:
Les résultats sont indexés 1.
Utilise l' encodage 05AB1E . Essayez-le en ligne!
Explication:
la source
Javascript,
1246 octetsLa plupart du code est repris par le chèque principal, qui est d' ici .
la source
Dyalog APL (29 caractères)
Je suis presque certain que cela peut être amélioré.
Il s'agit d'une fonction récursive qui vérifie le nombre de diviseurs de 1 + 2 ^ 2 ^ ⍵, où ⍵ est le bon argument de la fonction. Si le nombre de diviseurs est 2, le nombre est premier, et il le renvoie, sinon, il appelle à nouveau la fonction avec ⍵ + 1 comme argument de droite.
Exemple
Ici, j'appelle la fonction sur chacun de ⍳4 (les nombres 1-4). Il l'applique tour à tour à chaque numéro.
la source
Haskell , 61 octets
Essayez-le en ligne!
Index basé sur 0
Explication
la source