GCD
求最大公约数的算法。
a / b = k ... r
, 则 gcd(a, b) = gcd(b, r)
。
大概的证明过程:
设d是a和b的公因数,则d|a且d|b。于是d|(a−bq)。也就是说d|r, 因为r=a−bq. ==》d是b,r的公因数
设d是b和r的公因数,则d|r且d|b。于是d|(bq+r)。所以d|a ==》所以d是a,b的公因数。
综上,a,b的所有公因数和b,r的所有公因数是一样的。那么,d是a,b的最大公因数,当且仅当d是b和r的最大公因数。
Last updated