Definiujemy jako listę odrębnych potęg które sumują się do . Na przykład .2 x V ( 35 ) = [ 32 , 2 , 1 ]
Zgodnie z konwencją, moce są tutaj sortowane od najwyższych do najniższych. Ale nie wpływa to na logikę wyzwania ani oczekiwane rozwiązania.
Zadanie
Biorąc pod uwagę półpierwszą literę , zamień każdy termin w inną listę potęg które sumują się do tego terminu, w taki sposób, że suma wszystkich powstałych podlist stanowi dokładne pokrycie macierzy zdefiniowanej jako:V ( N ) 2 M.
gdzie i są głównymi czynnikami .Q N
Jest to o wiele łatwiejsze do zrozumienia na niektórych przykładach.
Przykład 1
Dla mamy:
- i
- i
Aby zmienić w dokładną osłonę , możemy podzielić na i na , podczas gdy pozostanie niezmienione. Możliwe wyjście to:
Innym ważnym wyjściem jest:
Przykład nr 2
Dla mamy:
- i
- and
A possible output is:
Rules
- Because factorizing is not the main part of the challenge, you may alternately take and as input.
- When several possible solutions exist, you may either return just one of them or all of them.
- You may alternately return the exponents of the powers (e.g. instead of ).
- The order of the sub-lists doesn't matter, nor does the order of the terms in each sub-list.
- For some semiprimes, you won't have to split any term because already is a perfect cover of (see A235040). But you still have to return a list of (singleton) lists such as for .
- This is code-golf!
Test cases
Input | Possible output
-------+-----------------------------------------------------------------------------
9 | [ [ 4, 2, 2 ], [ 1 ] ]
15 | [ [ 8 ], [ 4 ], [ 2 ], [ 1 ] ]
21 | [ [ 8, 4, 4 ], [ 2, 2 ], [ 1 ] ]
51 | [ [ 32 ], [ 16 ], [ 2 ], [ 1 ] ]
129 | [ [ 64, 32, 16, 8, 4, 2, 2 ], [ 1 ] ]
159 | [ [ 64, 32, 32 ], [ 16 ], [ 8 ], [ 4 ], [ 2 ], [ 1 ] ]
161 | [ [ 64, 32, 16, 16 ], [ 8, 8, 4, 4, 4, 2, 2 ], [ 1 ] ]
201 | [ [ 128 ], [ 64 ], [ 4, 2, 2 ], [ 1 ] ]
403 | [ [ 128, 64, 64 ], [ 32, 32, 16, 16, 16, 8, 8 ], [ 8, 4, 4 ], [ 2 ], [ 1 ] ]
851 | [ [ 512 ], [ 128, 64, 64 ], [ 32, 16, 16 ], [ 8, 4, 4 ], [ 2 ], [ 1 ] ]
2307 | [ [ 1024, 512, 512 ], [ 256 ], [ 2 ], [ 1 ] ]