Étant donné un entier positif vous pouvez toujours trouver un tuple d'entiers tels que k_1 \ cdot k_2 \ cdot ... \ cdot k_m = n et k_1 | k_2 \ text {,} k_2 | k_3 \ text {,} \ ldots \ text {,} k_ {m-1} | k_m.
Ici, a | b signifie que b est un multiple de a , disons "a divise b". Si n> 1, toutes les entrées k_i doivent être au moins égales à 2 . Pour n = 1, nous n'avons pas un tel facteur et nous obtenons donc un tuple vide.
Si vous êtes curieux de savoir d'où cela vient: cette décomposition est connue sous le nom de décomposition de facteurs invariants dans la théorie des nombres et elle est utilisée dans la classification des groupes abéliens générés de manière finie.
Défi
Étant donné sortie tous ces tuples pour la donnée exactement une fois, dans l' ordre que vous aimez. Les formats de sortie de séquence standard sont autorisés.
Exemples
1: () (empty tuple)
2: (2)
3: (3)
4: (2,2), (4)
5: (5)
6: (6)
7: (7)
8: (2,2,2), (2,4), (8)
9: (3,3), (9)
10: (10)
11: (11)
12: (2,6), (12)
108: (2,54), (3,3,12), (3,6,6), (3,36), (6,18), (108)
Connexes: http://oeis.org/A000688 , Liste de toutes les partitions multiplicatives de n
12,3,3
)Réponses:
Haskell,
666260 octetsEssayez-le en ligne!
la source
05AB1E , 13 octets
Essayez-le en ligne!
la source
Òœ€.œP
pour obtenir les sous-listes. J'ai en effet eu du mal à trouver quelque chose de plus court aussiÅœ
. ;)Gelée , 17 octets
Essayez-le en ligne!
la source
JavaScript (V8) ,
7370 octetsEssayez-le en ligne!
Commenté
la source
05AB1E ,
171514 octetsTrès lent pour les cas de test plus volumineux.
-1 octet grâce à @Grimy .
Essayez-le en ligne.
Explication:
la source
JavaScript, 115 octets
J'écrirai une explication plus tard
la source
Wolfram Language (Mathematica) ,
7876727167 octetsEssayez-le en ligne!
Arborescence de recherche récursive.
Solution de force brute, 64 octets :
Modification triviale de ma solution Mathematica pour lister toutes les partitions multiplicatives de n .
la source
Japt , 22 octets
Essayez-le
la source