Source: https://www.espci.psl.eu/enseignement/maths/PourAllerPlusLoin/C_Barreteau/documents/polymaths1A_051212_Chap2.pdf