最大公约数定义:两个不全为0的非负整数m和n的最大公约数记为gcd(m,n),代表能够整除(即余数为0)m和n的最大正整数。
一、欧几里得算法
第一步:如果n=0,返回m的值作为结果,同时过程结束;否则进入第二步
第二步:m除以n,将余数赋给r
第三步:将n的值赋给m,将r的值赋给n,返回第一步
算法 Euclid(m,n)
//使用欧几里德算法计算gcd(m,n)
//输入:两个不全为0的非负整数m,n
//输出:m,n的最大公约数
if n=0
return n
while n!=0 do
r←m mod n
m←n
n← r
return n
二、连续整数检测法
第一步:将min{m,n}的值赋给t
第二步:m除以t,如果余数为0,进入第三步;否则进入第四步
第三步:n除以t,如果余数为0,返回t的值作为结果;否则进入第四步
第四步:把t的值减1。返回第二步
算法:
//使用连续整数检测法计算gcd(m,n)
//