Factor[poly] factors a polynomial over the integers.
Factor[poly, Modulus->p] factors a polynomial modulo a prime p.
Factor[poly, Extension->, , ... ] factors a polynomial allowing coefficients that are rational combinations of the algebraic numbers .
Factor applies only to the top level in an expression. You may have to use Map, or apply Factor again, to reach other levels.
Factor[poly, GaussianIntegers->True] factors allowing Gaussian integer coefficients.
If any coefficients in poly are complex numbers, factoring is done allowing Gaussian integer coefficients.
The exponents of variables need not be positive integers. Factor can deal with exponents that are linear combinations of symbolic expressions.
When given a rational expression, Factor effectively first calls Together, then factors numerator and denominator.
With the default setting Extension->None, Factor[poly] will treat algebraic number coefficients in poly like independent variables.
Factor[poly, Extension->Automatic] will extend the domain of coefficients to include any algebraic numbers that appear in poly.
See The Mathematica Book: Section 1.4.3, Section 1.4.5 and Section 3.3.1.
Implementation Notes: see section A.9.5.
See also: FactorTerms, FactorSquareFree, Solve, Expand, Simplify, FactorInteger, TrigFactor.