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 ).
0
nieosią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 2
zarówno dla 8
wyników w dwóch 4
sek.) 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ć.
N
jest zbędny, czy możemy zrezygnować?