Desafío
El desafío es escribir un programa que tome los coeficientes de cualquier ecuación polinómica de n grados como entrada y devuelva los valores integrales de x para los que la ecuación es verdadera. Los coeficientes se proporcionarán como entrada en el orden de potencia decreciente o creciente. Puede asumir que todos los coeficientes son enteros .
Entrada y salida
La entrada será los coeficientes de la ecuación en orden decreciente o creciente de potencia. El grado de la ecuación, es decir, la potencia máxima de x, es siempre 1 menor que el total de elementos en la entrada.
Por ejemplo:
[1,2,3,4,5] -> represents x^4 + 2x^3 + 3x^2 + 4x + 5 = 0 (degree = 4, as there are 5 elements)
[4,0,0,3] -> represents 4x^3 + 3 = 0 (degree = 3, as there are 3+1 = 4 elements)
Su salida debe ser solo los distintos valores integrales de x que satisfacen la ecuación dada. Todos los coeficientes de entrada son enteros y el polinomio de entrada no será un polinomio cero . Si no hay una solución para la ecuación dada, entonces la salida no está definida.
Si una ecuación tiene raíces repetidas, muestre esa raíz en particular solo una vez. Puede generar los valores en cualquier orden. Además, suponga que la entrada contendrá al menos 2 números.
Ejemplos
[1,5,6] -> (-3,-2)
[10,-42,8] -> (4)
[1,-2,0] -> (0,2)
[1, 1, -39, -121, -10, 168] -> (-4, -3, -2, 1, 7)
[1, 0, -13, 0, 36] -> (-3, -2, 2, 3)
[1,-5] -> (5)
[1,2,3] -> -
Tenga en cuenta que la ecuación en el segundo ejemplo también tiene la raíz 0.2, pero no se muestra ya que 0.2 no es un número entero.
Puntuación
Este es el código de golf , por lo que gana el código más corto (en bytes).