Source: https://pierrelux.net/documents/cours/ts/pgcd_nb_prem_eux.pdf