Factoring Polynomials with SymPy

Here is an example that uses SymPy to factor polynomials.

In [1]:
from IPython.html.widgets import interact
from IPython.display import display
In [2]:
from sympy import Symbol, Eq, factor, init_printing
init_printing(use_latex='mathjax')
In [3]:
x = Symbol('x')
In [4]:
def factorit(n):
    display(Eq(x**n-1, factor(x**n-1)))

Notice how the output of the factorit function is properly formatted LaTeX.

In [5]:
factorit(12)
$$x^{12} - 1 = \left(x - 1\right) \left(x + 1\right) \left(x^{2} + 1\right) \left(x^{2} - x + 1\right) \left(x^{2} + x + 1\right) \left(x^{4} - x^{2} + 1\right)$$
In [6]:
interact(factorit, n=(2,40));
$$x^{21} - 1 = \left(x - 1\right) \left(x^{2} + x + 1\right) \left(x^{6} + x^{5} + x^{4} + x^{3} + x^{2} + x + 1\right) \left(x^{12} - x^{11} + x^{9} - x^{8} + x^{6} - x^{4} + x^{3} - x + 1\right)$$