Source: https://www.uqac.ca/rebaine/8MAT146/Hiver2010/factorisationFICHE.pdf