Définissons une séquence. Nous dirons que est le plus petit nombre, , qui a les propriétés suivantes:
et sont co-premiers (ils ne partagent aucun facteur)
n'apparaît pas plus tôt dans la séquence
Contrairement à la plupart des séquences, le domaine et la plage de notre séquence sont des entiers supérieurs à 1.
Calculons les deux premiers termes.
, doit être au moins4, mais4et2partagent un facteur de2,donc doit être5.
, doit être au moins5mais5est pris par , donc c'est au moins6, mais6partage un facteur avec3donc il doit être au moins7,7remplit les trois conditions donc .
- 2 partage un facteur
- 3 Trop près
- 4 Trop près
- 5 Trop près
- 6 partage un facteur
- 7 Pris par un (3)
- 8 partage un facteur
- 9 est bon
- 2 est bon
Tâche
Dans ce défi, vous devez écrire un programme qui prend un nombre supérieur à 1 et renvoie .
Il s'agit d'une question de code-golf, donc les réponses seront notées en octets, avec moins d'octets étant mieux.
Cas de test
Voici les deux premiers termes de la séquence (ils sont bien sûr indexés 2):
5,7,9,2,11,3,13,4,17,6,19,8,23,22,21,10,25,12,27,16,15,14
Bonus Fun Fact
Comme l'a prouvé Robert Israel sur Math.se ( lien ), cette séquence est son propre inverse, ce qui signifie que pour tout n.
OEIS
Après avoir posé cette question, j'ai soumis cette séquence à l'OEIS et après quelques jours, elle a été ajoutée.
Réponses:
Haskell , 61 octets
Essayez-le en ligne!
Je suis assez nouveau à Haskell, donc tous les conseils de golf sont appréciés.
Merci à Wheat Wizard pour 2 octets et nimi pour 4 octets
Explication:
la source
Alice , 42 octets
Essayez-le en ligne!
Explication
Il s'agit d'un modèle standard pour les programmes qui prennent un nombre en entrée et en sortent un nombre, modifié pour placer un 1 sur la pile sous le numéro d'entrée.
La partie principale du programme place chaque numéro
k
dans la fentea(k)
sur la bande. La boucle interne calcule a (k) et la boucle externe itère sur k jusqu'à ce que a (n) soit calculé.la source
VB.NET (.NET 4.5), 222 octets
J'ai dû lancer votre propre GCD. Je ne pouvais pas non plus comprendre comment faire en sorte que ce ne soit pas une fonction entière.
GCD est toujours> = 1, il suffit donc d'ignorer 1
Supprimé les courts-circuits dans le golf parce qu'il est plus court
Non golfé
la source
Mathematica, 111 octets
Essayez-le en ligne! 2..23 (mode plage)
Essayez-le en ligne! ou 150 (valeurs distinctes)
la source
Japt , 33 octets (non concurrentiel?) †
Essayez-le en ligne!
† J'ai corrigé un bogue dans Japt Interpreter en travaillant sur cette solution. Ce meta post d'il y a un an considère que cette réponse n'est pas concurrente, mais ce nouveau meta post pousse pour plus de liberté dans ce domaine. Quoi qu'il en soit, j'ai passé trop de temps là-dessus pour le supprimer.
la source
05AB1E , 26 octets
°
T*
Explication:
la source