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 )

Nes una entrada redundante, ¿podemos renunciar a tomarla?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 uso2de ambos8da como resultado dos4s.) 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.Respuestas:
05AB1E , 13 bytes
Pruébalo en línea!
Un puerto de mi respuesta Pyth.
Òobtiene el hecho de primera Ò RS de cada uno..»pliegues un comando diádico,â(c â rtesi â n producto) entre cada dos elementos de la lista de derecha a izquierda con derecha / operandos opuestas izquierda.€˜aplana € ach.ʒ...}FILT ʒ rs aquellos que satisfacen la siguiente condición:÷división entera por pares con la entrada.DD duplicar (empuja dos copias del elemento a la pila).Ùquita elementos duplicados, manteniendo un Ù niq Ù e ocurrencia de cada elemento.Qcomprueba si hay correo Q alidad.θObtiene el último elemento.fuente
Jalea ,
1514 bytesUn programa completo que acepta un argumento, una lista de números e imprime una representación de otra lista de números, o
0si la tarea es imposible.Pruébalo en línea!
¿Cómo?
fuente
µ⁼Qque funcionaría como una alternativa al tamiz distintivo, pero ¡buen trabajo!Pyth , 15 bytes
Pruébalo aquí!
¿Cómo?
ef {I / VQT.nM * FPM | Programa completo, que renuncia al tamaño. El | PM | Factorización prima de cada número entero. * F | Doble el producto cartesiano sobre la lista de primos. .nM | Aplane cada uno. f | Filtrar. {I / VQT | Condición del filtro (utiliza una variable T). / V | División de enteros vectorizados ... QT | Sobre la entrada y el elemento actual. {I | ¿Es invariante sobre la deduplicación (eliminar duplicados)? e | Toma el último elemento. El | Salida del resultado implícitamente.fuente