Source: https://notesdecours.drivehq.com/courspdf/matpgcd.pdf