Ti sono state date N pile di monete. Hai deciso di dividere ciascuna di quelle pile B 1 , B 2 , ..., B N tra gruppi separati di persone. La quantità di persone che ricevono monete deve essere un numero primo e la quantità di denaro data a ogni persona deve essere diversa in ogni pila.
Input: N, B 1 , B 2 , ..., B N (La quantità di monete in ogni singola pila).
Uscita: NP 1 , NP 2 , ..., NP N con NP come numero di persone (numero primo) che ricevono le monete. Se questo è impossibile poi cedere qualche risultato irrealizzabile (come 0
, -1
, None
, []
, o "impossible"
) o generare un errore.
Esempio:
3
7 8 9
Produzione: 7 2 3
Perché 7 è l'unico numero primo che può dividere 7 in modo uniforme, lo stesso per 8 e 2 e 9 e 3. Inoltre, si noti che (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3 ).
0
, un elenco vuoto, una stringa come "impossibile" o generare un errore) per casi impossibili? (In realtà consiglierei solo input validi, o consentire comportamenti indefiniti in questi casi, ma dipende da te.)
[7,8,8]
che sarebbe impossibile (dal momento che usando 2
per entrambi i 8
risultati in due 4
secondi). Inoltre, se l'input fosse detto, [7,30,30]
allora non [7,2,2]
sarebbe valido ma [7,2,3]
e [7,3,2]
tra l'altro funzionerebbe.
N
è un input ridondante, possiamo rinunciare a prenderlo?