欧几里得算法:
以除数和余数反复做除法运算,当余数为 0 时,取当前算式除数为最大公约数,资料来源:https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%AE%97%E6%B3%95/1647675
算法说明(来自百度):
⒈ 若 r 是 a ÷ b 的余数,且r不为0, 则
gcd(a,b) = gcd(b,r)
⒉ a 和其倍数之最大公因子为 a。
另一种写法是:
⒈ 令r为a/b所得余数(0≤r
若 r= 0,算法结束;b 即为答案。
⒉ 互换:置 a←b,b←r,并返回第一步。
实现欧几里得算法的伪代码:
read a
read b
while a < b
取b除以a的余数为c
if c == 0
write a
else
使b = a
a = c
while b > a
取a除以b的余数为c
if c == 0
write b
else
使 a = b
b = c
If a == b
write a
4.检测