Kami mendefinisikan sebagai daftar kekuatan yang berbeda yang menjumlahkan . Misalnya, .
Berdasarkan konvensi, kekuatan diurutkan di sini dari tertinggi ke terendah. Tapi itu tidak mempengaruhi logika tantangan, maupun solusi yang diharapkan.
Tugas
Diberikan semiprime , ganti setiap istilah dalam dengan daftar kekuatan lain yang menjumlahkan istilah ini, sedemikian rupa sehingga penyatuan semua sub-daftar yang dihasilkan adalah sampul yang tepat dari matriks didefinisikan sebagai:
dimana dan adalah faktor prima dari .
Ini jauh lebih mudah dipahami dengan beberapa contoh.
Contoh 1
Untuk , kami memiliki:
- dan V ( P ) = [ 4 , 2 , 1 ]
- dan V ( Q ) = [ 2 , 1
Untuk mengubah menjadi penutup M yang tepat , kita dapat membagi 16 menjadi 8 + 4 + 4 dan 4 menjadi 2 + 2 , sementara 1 dibiarkan tidak berubah. Jadi output yang mungkin adalah:
Output lain yang valid adalah:
Contoh # 2
Untuk , kami memiliki:
- dan V ( P ) = [ 32 , 4 , 1 ]
- dan V ( Q ) = [ 16 , 4 , 2 , 1 ]
Output yang mungkin adalah:
Aturan
- Karena faktorisasi bukan bagian utama dari tantangan, Anda dapat mengambil P dan Q sebagai input.
- Ketika beberapa solusi yang mungkin ada, Anda dapat mengembalikan salah satu atau semuanya.
- Anda dapat secara bergantian mengembalikan eksponen dari kekuatan (misalnya alih-alih [ [ 8 , 4 , 4 ).
- Urutan sub-daftar tidak menjadi masalah, juga urutan persyaratan dalam setiap sub-daftar.
- Untuk beberapa semiprimes, Anda tidak perlu membagi istilah apa pun karena sudah merupakan sampul sempurna M (lihat A235040 ). Tetapi Anda masih harus mengembalikan daftar (tunggal) daftar seperti [ [ 8 ] , [ 4 ] , [ 2 untuk N = 15 .
- Ini golf kode !
Uji kasus
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 ] ]