Fundamental theorem of algebra
Topological proofs

Suppose the minimum of | p (z)| on the whole complex plane is achieved at z; it was seen at the proof which uses Liouville's theorem that such a number must exist. We can write p (z) as a polynomial in z − z: there is some natural number k and there are some complex numbers c, c,..., c such that c ≠ 0 and:

If p (z) is nonzero, it follows that if a is a k root of − p (z)/ c and if t is positive and sufficiently small, then | p (z + ta)| < | p (z)|, which is impossible, since | p (z)| is the minimum of | p | on D.

For another topological proof by contradiction, suppose that the polynomial p (z) has no roots, and consequently is never equal to 0. Think of the polynomial as a map from the complex plane into the complex plane. It maps any circle | z | = R into a closed loop, a curve P (R). We will consider what happens to the winding number of P (R) at the extremes when R is very large and when R = 0. When R is a sufficiently large number, then the leading term z of p (z) dominates all other terms combined; in other words,

When z traverses the circle R e i θ {\displaystyle Re^{i\theta }} once counter-clockwise (0 ≤ θ ≤ 2 π), {\displaystyle (0\leq \theta \leq 2\pi),} then z n = R n e i n θ {\displaystyle z^{n}=R^{n}e^{in\theta }} winds n times counter-clockwise (0 ≤ θ ≤ 2 π n) {\displaystyle (0\leq \theta \leq 2\pi n)} around the origin (0,0), and P (R) likewise. At the other extreme, with | z | = 0, the curve P (0) is merely the single point p (0), which must be nonzero because p (z) is never zero. Thus p (0) must be distinct from the origin (0,0), which denotes 0 in the complex plane. The winding number of P (0) around the origin (0,0) is thus 0. Now changing R continuously will deform the loop continuously. At some R the winding number must change. But that can only happen if the curve P (R) includes the origin (0,0) for some R. But then for some z on that circle | z | = R we have p (z) = 0, contradicting our original assumption. Therefore, p (z) has at least one zero.
startend:end_checker