Il s'agit d'une question assez courante. Je définirai une séquence et vous jouerez du code pour sortir une entrée en fonction d'un index.
Le premier élément de la séquence est 2.
Le nième élément de la séquence est le plus petit entier positif autre que n et 1 partageant au moins un facteur avec n (autre que 1) qui n'est pas déjà apparu dans la liste.
Cas de test
Voici les 25 premiers éléments de la séquence:
1 2
2 4
3 6
4 8
5 10
6 3
7 14
8 12
9 15
10 5
11 22
12 9
13 26
14 7
15 18
16 20
17 34
18 16
19 38
20 24
21 27
22 11
23 46
24 21
25 30
code-golf
number
sequence
permutations
Ad Hoc Garf Hunter
la source
la source
Python 3 ,
118117 octets-1 octet merci à Cameron Aavik !
Essayez-le en ligne!
Le code est assez inefficace (il force brutalement une valeur qui n'existe pas dans les résultats précédents et calcule à nouveau les résultats précédents sur chaque nouvelle valeur), donc il fonctionne correctement mais je ne recommanderais pas de l'exécuter sur de grands nombres.
la source
def f(n,i=3):
et en enlevant lai=3
ligneHaskell ,
6059 octetsÉDITER:
all(/=x)
était plus court quex`notElem`
.f
prend un entier et retourne un entier.Essayez-le en ligne!
Il s'agit d'un temps très exponentiel, donc TIO expire après 21, tandis que mon GHCi interprété a atteint 22 avant que je ne l'arrête tout à l'heure. La version suivante de 9 octets de plus à mémoriser dans une liste monte facilement par milliers:
Essayez-le en ligne!
f n
utilise une compréhension de liste pour générer des candidatsx
, en prenant le premier qui passe avec!!0
.gcd x n>1
vérifie celax
etn
a des facteurs communs.||n<2
exempten==1
de l'exigence relative aux facteurs.all(/=x)$n:map f[1..n-1]
vérifie quix
n'estn
ni un élément de séquence précédent.la source
all(/=x)$
est 1 plus courtPas intégré pour GCD en C #, donc ...
C # (.NET Core) ,
197196194octetsEssayez-le en ligne!
Encore une fois, évitez d'utiliser ce code pour calculer les nombres dans la séquence de
n>30
...while
boucle GCD pour unefor
boucle.la source
a>0&b>0
peut être joué aua*b>0
APL (Dyalog) , 46 octets
Essayez-le en ligne!
la source