Depuis Euclide, nous savons qu'il existe une infinité de nombres premiers. L'argument est en contradiction: S'il n'y a que nombre fini, disons que , alors sûrement n'est divisible par aucun de ces nombres premiers, donc sa factorisation en nombres premiers doit produire un nouveau nombre premier qui n'était pas dans la liste. Ainsi, l'hypothèse selon laquelle il n'existe que des nombres finis premiers est fausse.
Supposons maintenant que est le seul nombre premier. La méthode ci-dessus donne comme nouveau premier (possible). Appliquer à nouveau la méthode donne , puis , puis , donc etsont de nouveaux nombres premiers, etc. Dans le cas où nous obtenons un nombre composite, nous prenons simplement le moins nouveau nombre premier. Il en résulte A000945 .
Défi
Étant donné un nombre premier et un nombre entier calculer le -ième terme de la séquence définie comme suit:
Ces séquences sont appelées séquences Euclid-Mullin .
Exemples
Pour :
1 2
2 3
3 7
4 43
5 13
6 53
7 5
8 6221671
9 38709183810571
Pour ( A051308 ):
1 5
2 2
3 11
4 3
5 331
6 19
7 199
8 53
9 21888927391
Pour ( A051330 )
1 97
2 2
3 3
4 11
5 19
6 7
7 461
8 719
9 5
(,0({q:)1+*/)^:
pendant 15 octets, retour de la séquence jusqu'àn
(indexé zéro)verb conj
produit un adverbe .^:
, puis cela devient un verbe qui s'applique à l'argument de droite. Je pense que c'est ce qui se passe grammaticalement.Python 2 , 56 octets
Essayez-le en ligne!
Commenté
Essayez-le en ligne!
la source
int(input())
autrementi
eststr
?input()
renvoie toujours des chaînes. En Python 2input()
essaie d'évaluer l'entrée. J'utilise Python 2 dans ce cas car le code résultant est légèrement plus court. Pour le vrai code, vous devriez essayer d'utiliser Python 3 car c'est la version la plus récente et la plus prise en charge de Python.Gelée , 8 octets
Un programme complet (utilisant l'indexation zéro) acceptantP0 et n qui imprime une représentation Jelly de la liste des P0 à Pn compris. (En tant que lien dyadique, avec
n=0
nous recevrons un entier, pas une liste.)Essayez-le en ligne!
Comment?
la source
05AB1E , 8 octets
La première entrée estn , le second est premier p .
Essayez-le en ligne ou bien d'autres cas de test (la suite de tests n'a pas les cas de test pourn ≥ 9 , parce que pour p = 2 et p = 5 la fonction intégrée
f
prend trop de temps).Explication:
la source
λλP>fW
(6 octets) avec sortie sous forme de liste infinie etλ£λP>fW
(7 octets) pour le premier£
mais pour le dernier élément!£
mais pour le dernier élément! ", Comme.£
? ;) EDIT: En fait, cela ne fonctionne pas exactement comme£
pour les listes .. en utilisant une liste comme[1,2]
avec des.£
résultats dans deux éléments en vrac avec les 1 et 2 derniers éléments (c'est-à-dire12345
devient à la[5,45]
place de[45,3]
ou[3,45]
, avec12S.£
) ..λ.£
devrait marcher. J'ai utilisé le drapeau comme dans une fonction supplémentaire associée àλ
(voir cette conversation avec Adnan ). Je veux essentiellement un indicateurè
tel que lors de son exécution,λè...}
il générerait le n-ième élément plutôt que le flux infini (tout commeλ£
pour la génération des n premiers éléments).£
pour l'environnement récursif. Ouais, alorsλ.£
ça ne marchera pas, mon mauvais. Nice 6 octets malgré tout. Il ne vous reste plus qu'à attendre la réponse de @flawr , qu'elle soit autorisée ou non (c'est probablement le cas).Japt ,
1211 octetsNous avons eu du mal à obtenir celui-ci, donc vous avez peut-être raté quelque chose qui peut être joué au golf.
Prend
n
comme première entrée etp1
, comme tableau singleton, comme seconde. Renvoie les premiersn
termes. Passezh
àg
pour renvoyer len
terme indexé à la place.Essayez-le
la source
Rétine , 56 octets
Essayez-le en ligne! Prend l'entrée comme le nombre de nouveaux termes à ajouter sur la première ligne et le ou les termes de départ sur la deuxième ligne. Remarque: devient très lent car il utilise la factorisation unaire, il doit donc créer une chaîne de la longueur appropriée. Explication:
Remplacez les virgules dans les termes de départ par
*
s et ajoutez a*
. Cela crée une expression Retina pour une chaîne de longueur du produit des valeurs.Répétez la boucle le nombre de fois donné par la première entrée.
Remplacez temporairement le nombre sur la première ligne par un
$
et ajoutez a_
à la deuxième ligne, puis évaluez le résultat en tant que programme Retina, ajoutant ainsi une chaîne de_
s de longueur 1 de plus que le produit des valeurs.Trouvez le plus petit facteur non trivial du nombre en décimal et ajoutez un
*
prêt pour la prochaine boucle.Supprimez l'entrée d'itération.
Supprimez le dernier
*
.Remplacez les
*
s restants par,
s.la source
JavaScript (Node.js) , 54 octets
Essayez-le en ligne!
Non golfé
la source
bash + GNU coreutils, 89 octets
TIO
la source
Ruby 2.6, 51 octets
(2..)
, la plage infinie à partir de 2, n'est pas encore prise en charge sur TIO.Il s'agit d'une fonction récursive qui prend une valeur de départ
s
(peut être un nombre premier ou composite), la renvoie lorsque n = 0 (modifier: notez que cela signifie qu'elle est indexée zéro), renvoie le plus petit nombrel
supérieur à 1 et se divise-(s+1)
lorsque n = 1, et sinon revient avecs=l*s
etn=n-1
.la source
(2..)
par2.step
(juste 1 octet de plus) pour lui permettre de fonctionner sur TIO et tout était éteint par un. Essayez-le en ligne!APL (Dyalog Extended) , 15 octets
Ceci est une mise en œuvre assez simple de l'algorithme qui utilise de très étendus facteurs premiers utiles builtin,
⍭
. Essayez-le en ligne!Explication
la source
Pari / GP , 47 octets
Essayez-le en ligne!
la source
Stax , 9 octets
Exécuter et déboguer
Prend et (indexé zéro) pour l'entrée. Produit .
p0
n
pn
la source
C (gcc) ,
5453 octetsEssayez-le en ligne!
-1 octet grâce au plafond
la source
Perl 6 ,
3332 octets-1 octet grâce à nwellnhof
Essayez-le en ligne!
Bloc de code anonyme qui prend un nombre et renvoie une liste paresseuse.
Explication:
la source
-+^[*](@_)
enregistre un octet.Haskell , 49 octets
Essayez-le en ligne!
Renvoie la séquence infinie sous forme de liste paresseuse.
Explication:
la source