Source: https://ressources.unisciel.fr/algoprog/s28hmult/emodules/hm03mexerc1/res/hm03exerc1-enonce-cpp-xxx.pdf