Definiamo come l'elenco di potenze distinte di che si sommano a . Ad esempio, .2 x V ( 35 ) = [ 32 , 2 , 1 ]
Per convenzione, i poteri sono ordinati qui dal più alto al più basso. Ma non influisce sulla logica della sfida, né sulle soluzioni previste.
Compito
Dato un semiprime , sostituisci ogni termine in con un altro elenco di poteri di che si sommano a questo termine, in modo tale che l'unione di tutti i sotto-elenchi risultanti sia una copertura esatta della matrice definita come:V ( N ) 2 M
dove e sono i fattori primi di .Q N
Questo è molto più facile da capire con alcuni esempi.
Esempio 1
Per , abbiamo:
- e
- e
Per trasformare in una copertura esatta di , possiamo dividere in 8 + 4 + 4 e 4 in 2 + 2 , mentre 1 rimane invariato. Quindi un possibile output è:M 16 8 + 4 + 4 4 2 + 2 1
Un altro output valido è:
Esempio n. 2
Per , abbiamo:
- e
- e
Un possibile output è:
Regole
- Poiché la fattorizzazione di non è la parte principale della sfida, puoi alternativamente prendere e come input.
- Quando esistono diverse possibili soluzioni, è possibile restituire solo una di esse o tutte.
- Puoi alternativamente restituire gli esponenti dei poteri (ad esempio invece di ).
- L'ordine delle liste secondarie non ha importanza, né l'ordine dei termini in ciascuna lista secondaria.
- Per alcuni semiprimi, non dovrai dividere alcun termine perché è già una copertura perfetta di (vedi A235040 ). Ma devi ancora restituire un elenco di elenchi (singleton) come per .
- Questo è code-golf !
Casi test
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 ] ]