Solving Polynomials by Factoring