Source: https://www.est-usmba.ac.ma/ALGORITHME/res/Correction%20TD1%20algorithme_expo.pdf