Primitive polynomials and Gauss's lemma
Let R be a UFD with fraction field K = Frac(R). The content of a nonzero polynomial f ∈ R[x] is the gcd of its coefficients, and f is primitive if its content is a unit — its coefficients share no common prime factor. Any f ∈ R[x] factors as f = c(f)·f₀ with f₀ primitive. The remarkable fact, Gauss's lemma, is that primitivity is preserved by multiplication.
Gauss's Lemma: if f, g ∈ R[x] are primitive, so is fg. Proof (by contradiction). Suppose fg is NOT primitive. Then some prime p ∈ R divides every coefficient of fg, i.e. fg ≡ 0 in (R/p)[x]. Since p is prime, R/p is a domain, so (R/p)[x] is a domain too. Reducing mod p: (f mod p)(g mod p) = 0 in (R/p)[x]. A domain has no zero divisors ⇒ f ≡ 0 or g ≡ 0 mod p. But then p divides all coefficients of f (or of g), contradicting that f (or g) is primitive. ∎ Corollary (content is multiplicative): c(fg) = c(f)·c(g) up to units.
The payoff is a descent principle: a primitive polynomial of positive degree is irreducible in R[x] if and only if it is irreducible in K[x]. So factoring over the field K and factoring over the ring R agree for primitive polynomials. Combined with the fact that K[x] is a Euclidean domain (hence a UFD), this gives the theorem that R UFD ⇒ R[x] UFD. By induction, R[x₁,…,xₙ] is a UFD, and in particular Z[x] and k[x₁,…,xₙ] are UFDs.
Eisenstein's criterion
Eisenstein's criterion is the workhorse for proving polynomials irreducible. Let f = aₙxⁿ + … + a₁x + a₀ in R[x] over a UFD R, and suppose a prime p of R satisfies: p does not divide aₙ; p divides every other coefficient a₀,…,aₙ₋₁; and p² does not divide a₀. Then f is irreducible over K = Frac(R). The reason it works is a content argument mod p: any nontrivial factorization, reduced mod p, would force xⁿ to split, which the p² condition forbids.
Example 1. f(x) = x⁴ + 10x³ + 15x² + 5x + 20 over Q. Try p = 5: 5 ∤ 1 (lead), 5 | 10,15,5,20 (rest), 25 ∤ 20. Eisenstein at 5 ⇒ f is irreducible over Q. Example 2 (shift trick). The p-th cyclotomic polynomial, p prime, Φ_p(x) = x^(p−1) + … + x + 1 = (x^p − 1)/(x − 1). Eisenstein does not apply directly, so substitute x → x+1: Φ_p(x+1) = ((x+1)^p − 1)/x = x^(p−1) + C(p,1) x^(p−2) + … + C(p,p−1). Every binomial coefficient C(p,k) for 0<k<p is divisible by p, the constant term is C(p,p−1) = p (not divisible by p²), leading coeff 1. Eisenstein at p ⇒ Φ_p(x+1) irreducible ⇒ Φ_p irreducible.
Other irreducibility tools
- Reduction mod p: if f ∈ Z[x] is monic and f mod p is irreducible in F_p[x] for some prime p, then f is irreducible over Q. (The converse is false — some irreducibles reduce to reducible mod every p.)
- Rational root test: a candidate root a/b of a primitive polynomial must have a | a₀ and b | aₙ — quick way to rule out degree-2 and degree-3 factorizations.
- Degree bookkeeping: a polynomial of degree 2 or 3 over a field is irreducible iff it has no root; for degree ≥ 4 you must also exclude factorizations into two quadratics.