Polynomials and Factoring