Ми визначаємо як перелік відмінних потужностей 2, які дорівнюють x . Наприклад, V ( 35 ) = [ 32 , 2 , 1 .
За умовами повноваження тут сортуються від найвищої до найнижчої. Але це не впливає на логіку виклику, ні на очікувані рішення.
Завдання
З огляду на напівпримір , замініть кожен додаток у V ( N ) іншим переліком потужностей 2, які дорівнюють цьому терміну, таким чином, що об'єднання всіх підсумків, що виникають, є точним покриттям матриці M, визначеної як:
де і Q є основними факторами N .
Це набагато простіше зрозуміти на деяких прикладах.
Приклад №1
Для маємо:
- і V ( P ) = [ 4 , 2 , 1 ]
- і V ( Q ) = [ 2 , 1 ]
Щоб перетворити в точне покриття M , ми можемо розділити 16 на 8 + 4 + 4 і 4 на 2 + 2 , а 1 залишити без змін. Таким чином можливий вихід:
Інший дійсний вихід:
Приклад №2
Для маємо:
- і V ( P ) = [ 32 , 4 , 1 ]
- 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.
- Ви можете по черзі повертати експоненти потужностей (наприклад, замість [ [ 8 , 4 , 4 ] , [ 2 , 2 ] , [ 1 ] ).
- Порядок підсписів не має значення, а також порядок термінів у кожному підсписку.
- Для деяких напівперіодів вам не доведеться розділяти жоден термін, оскільки вже є ідеальною обкладинкою M (див. A235040 ). Але вам все одно потрібно повернути список (одиночні) списки, такі як [ [ 8 ] , [ 4 ] , [ 2 ] , [ 1 ] ] для N = 15.
- Це code-golf!
Тестові справи
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 ] ]