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 2
untuk kedua 8
hasil dalam dua 4
s.) 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.
N
adalah input yang berlebihan, bisakah kita tidak mengambilnya?