Você recebeu N pilhas de moedas. Você decidiu dividir cada uma dessas pilhas B 1 , B 2 , ..., B N entre grupos de pessoas separados. A quantidade de pessoas que recebem moedas deve ser um número primo e a quantidade de dinheiro dada a cada pessoa deve ser diferente em cada pilha.
Entrada: N, B 1 , B 2 , ..., B N (A quantidade de moedas em cada pilha individual).
Saída: NP 1 , NP 2 , ..., NP N sendo NP o número de pessoas (número primo) que recebem as moedas. Se isso for impossível, em seguida, produzir algum resultado inatingível (como 0
, -1
, None
, []
, ou "impossible"
) ou gerar um erro.
Exemplo:
3
7 8 9
Resultado: 7 2 3
Como 7 é o único número primo que pode dividir 7 igualmente, o mesmo para 8 e 2 e 9 e 3. Além disso, observe que (7/7 = 1) ≠ (8/2 = 4) ≠ (9/3 = 3 )
0
, uma lista vazia, uma string como "impossível" ou gerar um erro) para casos impossíveis? (Na verdade, eu recomendaria apenas entradas válidas, ou permitir comportamentos indefinidos nesses casos, mas depende de você.) #
[7,8,8]
que seria impossível (uma vez usando 2
para ambos os 8
resultados em dois 4
s.) Além disso, se a entrada fosse dizer [7,30,30]
, em seguida, [7,2,2]
seria inválida, mas [7,2,3]
e [7,3,2]
entre outros iria funcionar.
N
é uma entrada redundante, podemos deixar de tomá-la?