Otrzymałeś N stosów monet. Zdecydowałeś się podzielić każdy z tych stosów B 1 , B 2 , ..., B N na osobne grupy ludzi. Liczba osób otrzymujących monety musi być liczbą pierwszą, a ilość pieniędzy przekazanych każdej osobie musi być różna w każdym stosie.
Wejście: N, B 1 , B 2 , ..., B N (ilość monet w każdym stosie).
Wyjście: NP 1 , NP 2 , ..., NP N, przy czym NP to liczba osób (liczba pierwsza) odbierająca monety. Jeśli jest to niemożliwe, wówczas wydajność nieosiągalną jakiś rezultat (jak 0, -1, None, [], lub "impossible") lub podnieść błąd.
Przykład:
3
7 8 9
Wynik: 7 2 3
Ponieważ 7 jest jedyną liczbą pierwszą, która może równomiernie podzielić 7, to samo dla 8 i 2 oraz 9 i 3. Zwróć też uwagę, że (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3 ).
0nieosiągalny wynik (np. Pustą listę, ciąg „niemożliwy” lub zgłosić błąd) dla niemożliwych przypadków? (Tak naprawdę polecam tylko prawidłowe dane wejściowe lub zezwalam na niezdefiniowane zachowanie w takich przypadkach, ale to zależy od ciebie.)
[7,8,8]że byłoby niemożliwe (ponieważ używając 2zarówno dla 8wyników w dwóch 4sek.) Ponadto, jeśli wejście było powiedzieć [7,30,30]czym [7,2,2]byłby nieważny, ale [7,2,3]i [7,3,2]wśród innych będzie działać.
Njest zbędny, czy możemy zrezygnować?