Vous avez reçu N piles de pièces. Vous avez décidé de diviser chacune de ces piles B 1 , B 2 , ..., B N en groupes distincts de personnes. Le nombre de personnes recevant des pièces doit être un nombre premier et le montant d'argent donné à chaque personne doit être différent dans chaque pile.
Entrée: N, B 1 , B 2 , ..., B N (Le nombre de pièces dans chaque pile individuelle).
Sortie: NP 1 , NP 2 , ..., NP N avec NP étant le nombre de personnes (nombre premier) recevant les pièces. Si cela est impossible alors obtenir un résultat inatteignable (comme 0
, -1
, None
, []
ou "impossible"
) ou déclencher une erreur.
Exemple:
3
7 8 9
Production: 7 2 3
Parce que 7 est le seul nombre premier qui peut diviser 7 également, de même pour 8 et 2 et 9 et 3. Notez également que (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3 ).
0
, une liste vide, une chaîne comme "impossible", ou déclencher une erreur) pour les cas impossibles? (Je recommanderais en fait uniquement une entrée valide, ou autoriser un comportement indéfini dans de tels cas, mais c'est à vous de décider.)
[7,8,8]
qu'il serait impossible (puisque l' utilisation 2
pour les 8
résultats dans deux 4
s.) De plus, si l'entrée était dit [7,30,30]
alors [7,2,2]
serait invalide , mais [7,2,3]
et [7,3,2]
entre autres travailleraient.
N
est une entrée redondante, pouvons-nous renoncer à la prendre?