Les deux premiers nombres MU sont 2 et 3. Chaque autre nombre MU est le plus petit nombre non encore apparu qui peut être exprimé comme le produit de deux nombres MU distincts antérieurs d'une seule manière.
Voici les 10 premiers
2, 3, 6, 12, 18, 24, 48, 54, 96, 162
Tâche
Étant donné un calculate nombre positif et la sortie du n ième numéro MU.
Il s'agit d'une compétition de code-golf , vous devez donc viser à rendre votre code source aussi petit que possible.
Réponses:
Pyth,
2221 octetsEssayez-le en ligne. Suite de tests.
0 indexé.
Explication
la source
@
signe sur la dernière ligne est mal aligné. Je ne peux pas apporter de modification suggérée, car il s'agit d'un changement à 2 caractères.Haskell,
8077 octetsEssayez-le en ligne!
Comment ça fonctionne
la source
Gelée , 22 octets
Un lien monadique, indexé 1.
Essayez-le en ligne!
Comment?
la source
R ,
1271181111081051009890 octets8 octets grâce à Giuseppe.
Essayez-le en ligne!
la source
<
la priorité était plus faible que+
pour que je ne puisse pas comprendre ce+g%in%r<3
que je faisais, et pendant que je faisais ça, vous avez joué sur les deux parties que j'allais suggérer ... +1n=scan()
place d'une définition de fonction pour lire à partir de stdin; ça vous fera moins de 1000
CJam (32 octets)
Démo en ligne avec indexation 0.
Je ne suis pas sûr qu'il y ait beaucoup à faire au-delà d'une traduction triviale de la spécification à une exception près: en commençant par une liste de
[0 1 2 3]
(au lieu de[2, 3]
) j'enregistre un octet immédiatement à l'initialisation et deux autres en étant capable de le faire0=|
(en ajoutant juste le nouvel élément car sa fréquence est1
et est déjà dans la liste), mais n'introduisez pas de faux éléments car pour chacunx
dans la liste0*x
et1*x
sont déjà dans la liste.la source
Python 2 ,
127118 octetsEssayez-le en ligne!
la source
Mathematica, 154 octets
simple modification du code trouvé sur le lien oeis
la source
PHP , 130 octets
0 indexé
Essayez-le en ligne!
Étendu
PHP , 159 octets
0 indexé
Essayez-le en ligne!
PHP , 161 octets
0 indexé
Essayez-le en ligne!
la source
Mathematica, 140 octets
la source
MATL , 25 octets
Essayez-le en ligne!
Explication
la source
Perl 6 , 96 octets
Essayez-le en ligne!
2, 3, { ... } ... *
est une séquence infinie où chaque élément commençant par le troisième est calculé par le bloc de code délimité par des accolades. Puisque le bloc de code prend ses arguments via le@_
tableau slurpy , il reçoit la séquence actuelle entière dans ce tableau.@_.combinations(2)
est une séquence de toutes les combinaisons de 2 éléments de@_
..classify({ [*] $_ })
classe chaque 2-tuple par son produit, produisant un hachage où les produits sont les clés et les valeurs sont la liste des 2-tuples qui ont ce produit..grep(*.value == 1)
sélectionne ces paires clé-valeur à partir du hachage où la valeur (c'est-à-dire la liste des paires ayant cette clé comme produit) a une taille de 1.».key
sélectionne uniquement les clés de chaque paire. Il s'agit de la liste des produits issus d'une seule combinaison de facteurs de la séquence actuelle..sort
trie les produits numériquement.first * ∉ @_, ...
trouve le premier de ces produits qui n'est pas déjà apparu dans la séquence.la source
JavaScript (ES6),
119118117 octetsUne fonction récursive qui prend un index basé sur 0.
Comment?
À chaque itération de f () , nous utilisons le dernier terme m de la séquence et un tableau b initialement vide pour identifier le terme suivant. Pour chaque produit d> m de deux nombres MU distincts antérieurs, nous faisons:
puis conservez la valeur minimale de b .
L'expression ci-dessus est évaluée comme suit:
Cela garantit que les produits qui peuvent être exprimés de plusieurs manières ne seront jamais sélectionnés.
Formaté et commenté
Démo
Afficher l'extrait de code
la source
Haskell ,
117115113 octetsEssayez-le en ligne!
la source
n x=(*)<$>x<*>1:x
Python
32 ,167139136 136133123121120118 octetsEssayez-le en ligne!
Merci à @ Mr.Xcoder et @LeakyNun pour les améliorations!
la source
p.count(q)==1
dep.count(q)>0
est valide, parce que le code qui assure la condition « exactement d' une manière » du défi.p.count(q)-~(q in a)<=3
est équivalent àp.count(q)+(q in a)<3