Desafio
O desafio é escrever um programa que considere os coeficientes de qualquer equação polinomial de n grau e retorne os valores integrais de x para os quais a equação é verdadeira. Os coeficientes serão fornecidos como entrada na ordem de potência decrescente ou crescente. Você pode assumir que todos os coeficientes sejam inteiros .
Entrada e saída
A entrada será os coeficientes da equação em ordem decrescente ou crescente de potência. O grau da equação, ou seja, a potência máxima de x, é sempre 1 menor que o número total de elementos na entrada.
Por exemplo:
[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)
Sua saída deve ser apenas os valores integrais distintos de x que satisfazem a equação dada. Todos os coeficientes de entrada são números inteiros e o polinômio de entrada não será um polinômio zero . Se não houver solução para a equação fornecida, a saída será indefinida.
Se uma equação tiver raízes repetidas, exiba essa raiz específica apenas uma vez. Você pode emitir os valores em qualquer ordem. Além disso, suponha que a entrada conterá pelo menos 2 números.
Exemplos
[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] -> -
Observe que a equação no segundo exemplo também tem a raiz 0.2, mas não é exibida como 0.2 não é um número inteiro.
Pontuação
Isso é código-golfe , então o código mais curto (em bytes) vence!