This thread (including comments from both Jeremy and Alex) was very useful to me in PhD Quals preparation.

I would like to give a detailed proof using Jeremy's and Alex's outline, but without mention of Spec(R), in case the reader is less algebraic-geometry-inclined.

Corrections welcome. Thanks.

**Proposition**. Let R be a UFD in which every nonzero prime ideal is maximal. Then R is a PID.

**Lemma 1**. If p is a nonzero irreducible element of R, then (p) is a prime ideal of R.

*Proof*. Let a and b be nonzero elements of R such that ab ∈ (p), i.e. ab = pf for some nonzero element f ∈ R. If a and b are both non-units, then we can write their unique factorisations a = up_{1}...p_{r} and b = vq_{1}...q_{s} for unique irreducible elements p_{i} and q_{j}, and units u and v ∈ R. By unique factorisation, p = one of the p_{i}'s, or p = one of the q_{j}'s, or both. Hence either a ∈ (p) or b ∈ (p) or both. [Similar reasoning works if either a or b is a unit of R.] Thus, (p) is a prime ideal.

**Lemma 2**. If I is a nonzero prime ideal of R, then I is principal.

*Proof*. Given a nonzero, proper prime ideal, $I$, with some element $r\in I$, write $r= p_1\cdots p_n$ as a product of primes. By the primality of $I$ we know some $p_i\in I$. Since $p_i$ is prime, by assumption $(p_i)$ is maximal, so $(p_i)\subseteq I$ implies that $I=(p_i)$.

*Proof of Proposition.*

Following Alex's thread, let *N* be the set of non-principal ideals in R. Suppose that *N* is non-empty. *N* is a partially ordered set (with inclusion of ideals being the ordering relation). Any totally ordered subset of ideals J_{1} ⊆ J_{2} ⊆ ... in *N* has an upper bound, namely J = ∪ J_{i}. J is an ideal of R because the subset was totally ordered. If J = (x) for some x ∈ R, then x ∈ J_{i} for some i, and hence (x) = J_{i}. Contradiction. Thus, J ∈ *N* and by Zorn's Lemma, *N* has a maximal element. Call it *n*.

By Lemma 2, we see that *n* is not a prime ideal of R. Thus, there exist a, b ∈ R, such that a, b ∉ *n*, but ab ∈ *n*. But then *n* + (a) and *n* + (b) are ideals in R which are strictly bigger than *n*, and so must be principal ideals, i.e. *n* + (a) = (u) and *n* + (b) = (v) for u, v ∈ R. Then we have

*n* = *n* + (ab) = (*n* + (a)) (*n* + (b)) = (u)(v) = (uv). Contradiction.

Thus, *N* must be the empty set, i.e. all ideals in R are principal.