Source: http://doc.pyromaths.org/fr/master/_downloads/exercice.pdf