20201220蔡笃俊求最大公约数伪代码的学习

1.算法说明:辗转相除法,又被称为欧几里德(Euclidean)算法, 是求最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题i和ii)中,而在中国则可以追溯至东汉出现的《九章算术》。两个数的最大公约数是指能同时整除它们的最大正整数。辗转相除法的基本原理是:两个数的最大公约数等于它们中较小的数和两数之差的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 − 105 = 147,所以147和105的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数。网址链接:https://www.cnblogs.com/newpanderking/archive/2011/07/25/2116323.html
2.伪代码:
输入两个数(x,y)
比较x和y
若x小于y
交换x和y的数值
若x除于y的余数等于0
则输出x
如果不是的话
计算x减去y的值,将该值重新赋值给x,返回步骤2,继续计算。

测试:
输入252和105
252%105=42
205-105=147

147%105=42
147-105=42

105%42=21
42-21=21

21%21=0
所以公约数是21,正确。

原文地址:https://www.cnblogs.com/acacacaac/p/13922029.html