An algorithm that can be used to factor a polynomial over the integers. The algorithm proceeds by first factoring
modulo a suitable prime
via Berlekamp's method and then uses Hensel lifting to lift
this to a factorization modulo
,
then
, then
,
..., up to some bound
.
This has quadratic convergence. After this procedure, the right subsets of these
factors are chosen in order to obtain factors with integer coefficients. The worst-case
complexity of this procedure is exponential in the number of factors, since there
may be an exponential number of combinations to check. Bad examples are obtained
by taking an irreducible polynomial
in
which has many different factors modulo every
.
van Hoeij (2002) improved this algorithm by providing a better way of solving the combinatorial problem. His method uses lattice reduction
(more specifically, the LLL algorithm), and it substantially
reduces the time needed to choose the right subsets of mod factors.