Welcome, guest | Sign In | My Account | Store | Cart
from math import ceil
listOfFactors
= lambda n: {i for i in range(1,ceil(abs(n)/2)+1) if n%i == 0}
def removeDuplicates(mylist):
   
if mylist:
        mylist
.sort()
       
last = mylist[-1]
       
for i in range(len(mylist)-2, -1, -1):
           
if last == mylist[i]:
               
del mylist[i]
           
else:
               
last = mylist[i]
   
return mylist

def polyRoots(polyListCoeff):
    allFactors
= set()
    allFactorsListOld
= list(allFactors.union(listOfFactors(polyListCoeff[0]),{polyListCoeff[0]},listOfFactors(polyListCoeff[-1]),{polyListCoeff[-1]}))
    allFactorsListOld
.extend([-1*i for i in allFactorsListOld])
    allFactorsList
= list()
   
for k in allFactorsListOld:
       
for j in allFactorsListOld:
            allFactorsList
.append(k/j)
    allFactorsList
= removeDuplicates(allFactorsList)
    polyListCoeff
.reverse()
    roots
= [i for i in allFactorsList if sum([pow(i,j)*polyListCoeff[j] for j in range(0,len(polyListCoeff))]) == 0]
    factorList
= list()
   
for i in roots:
       
if i<0:
            factorList
.append("(x+{})".format(-i))
       
else:
            factorList
.append("(x-{})".format(i))
   
return "".join(factorList)

History