What is the best way to factor arbitrary polynomials?

If you are interested in the factorization algorithms employed in modern computer algebra systems such as Macsyma, Maple, or Mathematica, then see any of the standard introductions to computer algebra , e.g. Geddes et.al. "Algorithms for Computer Algebra"; Knuth, "TAOCP" v.2; von zur Gathen "Modern Computer Algebra"; Zippel "Effective Polynomial Computation". See also Kaltofen's surveys on polynomial factorization [116,68,56,7] in his publications list, which contains plenty of theory, history and literature references. Note: Kaltofen's home page appears to be temporarily down so instead see his paper [1] to get started (see comments)

1 Kaltofen, E. Factorization of Polynomials, pp. 95-113 in:
Computer Algebra, B. Buchberger, R. Loos, G. Collins, editors, Vienna, Austria, (1982).
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.39.7916&rep=rep1&type=pdf


If you're looking to factor exactly, then you'll need to use something that's not one of the fundamental operations of addition, subtraction, multiplication, division and extraction of roots. The Abel-Ruffini theorem says so for degree five and above. However, there are numerous other methods to find roots exactly, using more general functions, my favorite being theta functions, as explained in the appendix to Mumford's "Tata Lectures on Theta II"