Source: http://www.col-verne-illzach.ac-strasbourg.fr/disciplines/maths/manuels/Cycle4/Chapitre_E_Algorithmique_et_programmation.pdf