Algebraic Factoring