Factoring Techniques