Source: http://mathematiques.ac-bordeaux.fr/lycee2010/tice_algorithmique/activites/transversales/exercices_activites_transversales.pdf