Sfida
La sfida è scrivere un programma che prende come input i coefficienti di qualsiasi equazione polinomiale di grado n e restituisce i valori integrali di x per i quali l'equazione è vera. I coefficienti saranno forniti come input nell'ordine di potenza decrescente o crescente. Puoi assumere che tutti i coefficienti siano numeri interi .
Ingresso e uscita
L'input sarà i coefficienti dell'equazione in ordine decrescente o crescente di potenza. Il grado dell'equazione, ovvero la potenza massima di x, è sempre 1 in meno rispetto al no totale degli elementi nell'input.
Per esempio:
[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)
L'output dovrebbe essere solo i valori integrali distinti di x che soddisfano l'equazione data. Tutti i coefficienti di input sono numeri interi e il polinomio di input non sarà un polinomio zero . Se non esiste una soluzione per l'equazione specificata, l'output non è definito.
Se un'equazione ha ripetute radici, visualizza quella radice solo una volta. È possibile generare i valori in qualsiasi ordine. Inoltre, supponiamo che l'input conterrà almeno 2 numeri.
Esempi
[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] -> -
Si noti che l'equazione nel secondo esempio ha anche la radice 0.2, ma non viene visualizzata in quanto 0.2 non è un numero intero.
punteggio
Questo è code-golf , quindi vince il codice più breve (in byte)!