Rules For Factoring Polynomials