Bei einer positiven ganzen Zahl kann man immer ein Tupel von ganzen Zahlen so dass und
Hier bedeutet dass ein Vielfaches von , sagen wir "a teilt b". Wenn alle Einträge mindestens . Für wir keinen solchen Faktor und erhalten daher ein leeres Tupel.
Für den Fall, dass Sie neugierig sind, woher dies kommt: Diese Zerlegung wird in der Zahlentheorie als invariante Faktorenzerlegung bezeichnet und zur Klassifizierung endlich erzeugter abelscher Gruppen verwendet.
Herausforderung
Bei werden alle derartigen Tupel für das angegebene genau einmal ausgegeben , und zwar in beliebiger Reihenfolge. Die Standardformate für die Sequenzausgabe sind zulässig.
Beispiele
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)
Siehe auch: http://oeis.org/A000688 , Alle multiplikativen Partitionen von n auflisten
code-golf
math
sequence
number-theory
abstract-algebra
fehlerhaft
quelle
quelle
12,3,3
)Antworten:
Haskell,
666260 BytesProbieren Sie es online!
quelle
05AB1E , 13 Bytes
Probieren Sie es online!
quelle
Òœ€.œP
, die Unterlisten abzurufen. Ich hatte in der Tat auch Probleme, etwas kürzeres zu findenÅœ
. ;)Gelee , 17 Bytes
Probieren Sie es online!
quelle
JavaScript (V8) ,
73-70ByteProbieren Sie es online!
Kommentiert
quelle
05AB1E ,
171514 BytesSehr langsam für größere Testfälle.
-1 Byte dank @Grimy .
Probieren Sie es online aus.
Erläuterung:
quelle
JavaScript, 115 Byte
Ich werde später eine Erklärung schreiben
quelle
Wolfram Language (Mathematica) ,
7876727167 BytesProbieren Sie es online!
Rekursiver Suchbaum.
Brute-Force-Lösung, 64 Byte :
Triviale Modifikation meiner Mathematica-Lösung, um alle multiplikativen Partitionen von n aufzulisten .
quelle
Japt , 22 Bytes
Versuch es
quelle