Source: http://ressources.unisciel.fr/algoprog/s81nmric/emodules/nr03mexerc1/res/nr03exerc1-enonce-cpp-TP.pdf