Factoring higher degree polynomials