Source: https://www.orleans-informatique.com/info/stmg/exercices/Exercices - Q5.pdf