Anda telah diberi N tumpukan koin. Anda telah memutuskan untuk membagi masing-masing tumpukan B 1 , B 2 , ..., B N di antara kelompok-kelompok orang yang berbeda. Jumlah orang yang menerima koin haruslah bilangan prima dan jumlah uang yang diberikan kepada setiap orang harus berbeda di setiap tumpukan.
Input: N, B 1 , B 2 , ..., B N (Jumlah koin di setiap tumpukan individu).
Output: NP 1 , NP 2 , ..., NP N dengan NP menjadi jumlah orang (bilangan prima) yang menerima koin. Jika ini tidak mungkin kemudian menghasilkan beberapa hasil tidak bisa diraih (seperti 0, -1, None, [], atau "impossible") atau meningkatkan kesalahan.
Contoh:
3
7 8 9
Keluaran: 7 2 3
Karena 7 adalah satu-satunya bilangan prima yang dapat membagi 7 secara merata, sama untuk 8 dan 2 dan 9 dan 3. Juga, perhatikan bahwa (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3 ).
0, daftar kosong, string seperti "tidak mungkin", atau menimbulkan kesalahan) untuk kasus yang tidak mungkin? (Saya benar-benar akan merekomendasikan hanya input yang valid, atau mengizinkan perilaku yang tidak terdefinisi dalam kasus seperti itu, tetapi terserah Anda.)
[7,8,8]itu tidak mungkin (karena menggunakan 2untuk kedua 8hasil dalam dua 4s.) Selanjutnya, jika input dikatakan [7,30,30]maka [7,2,2]akan tidak valid tetapi [7,2,3]dan di [7,3,2]antara yang lain akan bekerja.
Nadalah input yang berlebihan, bisakah kita tidak mengambilnya?