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.