Te han dado N montones de monedas. Has decidido dividir cada una de esas pilas B 1 , B 2 , ..., B N entre grupos separados de personas. La cantidad de personas que reciben monedas tiene que ser un número primo y la cantidad de dinero otorgada a cada persona debe ser diferente en cada grupo.
Entrada: N, B 1 , B 2 , ..., B N (La cantidad de monedas en cada pila individual).
Salida: NP 1 , NP 2 , ..., NP N con NP es el número de personas (número primo) que reciben las monedas. Si esto es imposible, producir algún resultado inalcanzable (como 0
, -1
, None
, []
, o "impossible"
) o subir un error.
Ejemplo:
3
7 8 9
Salida: 7 2 3
Debido a que 7 es el único número primo que puede dividir 7 de manera uniforme, lo mismo para 8 y 2 y 9 y 3. Además, observe que (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3 )
0
, una lista vacía, una cadena como "imposible" o generar un error) para casos imposibles? (En realidad, recomendaría solo una entrada válida, o permitir un comportamiento indefinido en tales casos, pero depende de usted.)
[7,8,8]
que sería imposible (ya que el uso 2
de ambos 8
da como resultado dos 4
s.) Por otra parte, si la entrada estuviera decir [7,30,30]
entonces [7,2,2]
sería válido, pero [7,2,3]
, y [7,3,2]
entre otros funcionarían.
N
es una entrada redundante, ¿podemos renunciar a tomarla?