Source: https://lipn.univ-paris13.fr/~rozenknop/Cours/MICR_REI/Seance6/enonce_TP.pdf