Synthetic Division
p(x) / (x - x0) = q(x) + r / (x - x0) where r is the remainder.
p(x) and q(x) are represented as a list of coefficients with powers in descending order.
p(x) = a_n * x^n + a_(n-1) * x^(n-1) + … + a2 * x^2 + a1 * x + a0 l1 = [a_n, a_(n-1), … , a2, a1, a0]
q(x) is similar and is stored in l2.
from math import * print("Synthetic Division") print("p=ax**n+bx**(n-1)+...") l1=eval(input("List of coefs? ")) print("p(x)/(x-x0)") x=eval(input("x0? ")) p=l1[0] n=len(l1) l2=l1[0:n-1] l2[0]=p for i in range(1,n-1): p=p*x+l1[i] l2[i]=p r=p*x+l1[n-1] print("q(x)= "+str(l2)) print("r= "+str(r))