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 2de ambos 8da como resultado dos 4s.) 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.
Nes una entrada redundante, ¿podemos renunciar a tomarla?