# Factoring any single-variable polynomial in $\mathbb C$

The fundamental theorem of algebra says

$$\forall p(x):\mathbb C \to \mathbb C,\ p(x) = a\prod_{n=0}^m\big(b_nx+c_n\big)$$

where $p(x)$ is a single-variable polynomial, and $\{a;m\}\cup\{\forall b_n\forall c_n:0\leq n\leq m\}$ is unique (I say that set is unique because the $b$s and $c$s can be exchanged as multiplication is commutative, the $a$ is outside the $\prod$ so the $b$s and $c$s are truly unique). This is, any single-variable polynomial has a unique complete (binomial) factorization in the complex number set.

My question is: how do I factor any polynomial in $\mathbb C$? Not a specific one, I'd like an algorithm, a theorem, that can factor any polynomial. I've seen some other posts related to this, but they're always specific to some polynomial and involve long division and some confusing formulas, lemmas and what-nots Wikipedia doesn't help me understand (I've googled around, but as I don't know precisely what method is it I'm looking for, I came up more confused). Anyway, what I mean is that would be helpful, however it is not what I am looking for.

If it is indeed possible to make such an algorithm, is there any site that explains this, any open-source program that is able to do this, do you have any ideas to generalize any method you've come up with? Thanks for reading this, I hope it helps you (especially the first part) help me.

-
the bad news is that if you want exact answers, you're out of luck. look up the unsolvability of quintics on wikipedia. using the rational root test you can find all the rational roots though. i'm not sure what numeric method is the best – citedcorpse Jun 18 '13 at 18:22
You can factor out the leading coefficient from the largest power of $x$, forcing $b_n \equiv 1$. Then, the free coefficient must be the product of the roots. There are transformations you can use for all powers under 5 and at powers 5 or more it's not always possible... – gt6989b Jun 18 '13 at 18:25
finding roots and finding linear factors is the same thing. the FTA tells us that the roots do exist, and the galois theory tells us that we won't find nice finitary expressions for them in general (maybe you can get series expansions, but still). – citedcorpse Jun 19 '13 at 13:31
that said, you can use packages like mathematica and sage (i imagine) to find numerical approximations to the roots. i have no idea how well these work in practice – citedcorpse Jun 19 '13 at 13:34
note that one particular example that is important in the real world is finding eigenvalues, or roots of very specific polynomials. so the problem should be well studied – citedcorpse Jun 19 '13 at 13:34