Biorąc dodatnią liczbę całkowitą zawsze można znaleźć krotki liczb całkowitych takie, że i
Tutaj | b oznacza b jest wielokrotnością a , powiedz „a dzieli b”. Jeżeli n > 1, wszystkie wpisy k i muszą mieć co najmniej 2 . Dla n = 1 nie mamy takiego współczynnika i dlatego otrzymujemy pustą krotkę.
Jeśli jesteś ciekawy, skąd to się bierze: Ten rozkład jest znany jako niezmienny rozkład czynników w teorii liczb i jest wykorzystywany w klasyfikacji ostatecznie wygenerowanych grup abelowych.
Wyzwanie
Biorąc pod uwagę wyjścia wszystkie takie krotki za dany dokładnie raz, niezależnie od kolejności. Standardowe formaty wyjściowe sekwencji są dozwolone.
Przykłady
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)
Powiązane: http://oeis.org/A000688 , Lista wszystkich multiplikatywnych partycji n
12,3,3
)Odpowiedzi:
Haskell,
666260 bajtówWypróbuj online!
źródło
05AB1E , 13 bajtów
Wypróbuj online!
źródło
Òœ€.œP
na zdobycie list podrzędnych. Naprawdę miałem problem ze znalezieniem czegoś krótszego. Gdyby tylko było wbudowane podobne doÅœ
produktu zamiast sumy. ;)Galaretka , 17 bajtów
Wypróbuj online!
źródło
JavaScript (V8) ,
7370 bajtówWypróbuj online!
Skomentował
źródło
05AB1E ,
171514 bajtówBardzo wolny dla większych przypadków testowych.
-1 bajt dzięki @Grimy .
Wypróbuj online.
Wyjaśnienie:
źródło
JavaScript, 115 bajtów
Wyjaśnienie napiszę później
źródło
Wolfram Language (Mathematica) ,
7876727167 bajtówWypróbuj online!
Drzewo wyszukiwania rekurencyjnego.
Brute force, 64 bajty :
Trywialna modyfikacja mojego rozwiązania Mathematica aby wyświetlić listę wszystkich multiplikatywnych partycji n .
Ponieważ trzeba to sprawdzićnn krotki, wypróbuj bardziej wydajną wersję przy użyciu tej samej logiki .
źródło
Japt , 22 bajty
Spróbuj
źródło