1.给定两个正整数m,n(m>=n),求它们的最大公约数(一般要求m>=n,若m<n,则要先交换m,n).
具体过程:
1)[求余数],令r=m%n,r为n除m所得余数
2)[余数为0?]若r=0,算法结束,此刻n即为所求答案。否则,继续,转到3。
3)[重置] 置m=n, n=r,返回步骤1)
解释gcd(m,n)算法开头要求m>=n的原因: 举这样一个例子,如m<n
即m=119, n=544,那么r=m%n=119%544=119.
因为r!=0,所以继续执行上述步骤3,注意m=544,n=119.
尽管刚刚开始给的m<n,但最终执行gcd算法时,还是会把m,n的值交换过来,以保证m>=n.