Wir definieren als die Liste der unterschiedlichen Potenzen von , die sich zu summieren . Zum Beispiel ist .
Gemäß der Konvention werden die Kräfte hier vom höchsten zum niedrigsten Wert sortiert. Dies hat jedoch keinen Einfluss auf die Logik der Herausforderung und die erwarteten Lösungen.
Aufgabe
Ersetzen Sie bei einem Semiprime jeden Term in durch eine andere Liste von Potenzen von , die sich zu diesem Term summieren, so dass die Vereinigung aller resultierenden Teillisten eine exakte Abdeckung der Matrix definiert ist als:
wobei und Q die Primfaktoren von N sind .
Dies ist anhand einiger Beispiele viel einfacher zu verstehen.
Beispiel 1
Für haben wir:
- und V ( P ) = [ 4 , 2 , 1 ]
- und V ( Q ) = [ 2 , 1 ]
Um in eine exakte Abdeckung von M zu verwandeln , können wir 16 in 8 + aufteilen und 4 in 2 + 2, während 1 unverändert bleibt. Eine mögliche Ausgabe ist also:
Eine andere gültige Ausgabe ist:
Beispiel # 2
Für haben wir:
- und V ( P ) = [ 32 , 4 , 1 ]
- und V ( Q ) = [ 16 , 4 , 2 , 1 ]
Eine mögliche Ausgabe ist:
Regeln
- Da das Faktorisieren von nicht der Hauptteil der Herausforderung ist, können Sie alternativ P und Q als Eingabe verwenden.
- Wenn mehrere mögliche Lösungen vorhanden sind, können Sie entweder nur eine oder alle zurückgeben.
- Sie können alternativ die Exponenten der Potenzen (z. B. anstelle von [ [ 8 , 4]) zurückgeben ).
- Die Reihenfolge der Unterlisten spielt keine Rolle, ebenso die Reihenfolge der Begriffe in jeder Unterliste.
- Für einige Semiprimes müssen Sie keinen Begriff teilen, da bereits eine perfekte Abdeckung von M ist (siehe A235040 ). Sie müssen jedoch noch eine Liste von (Singleton-) Listen zurückgeben, z. B. [ [ 8 ] , [ 4 ] , für N = 15 zurückgeben .
- Das ist Code-Golf !
Testfälle
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 ] ]