Polynomial Roots and Factorization