辗转相除法,也称为欧几里得算法,是一种用于计算两个正整数a和b(a > b)的最大公约数(GCD)的算法。其基本思想是利用辗转相除法求余数,直到余数为0时,最后的非零余数即为最大公约数。
以下是辗转相除法求余的具体步骤和原理:
1. 基本步骤:
用较大的数a除以较小的数b,得到商q和余数r(a = bq + r)。
如果r = 0,则b即为a和b的最大公约数。
如果r ≠ 0,则将b赋值给a,将r赋值给b,重复步骤1。
2. 原理:
由于a = bq + r,那么a和b的差(a bq)也是b的倍数,即a bq = k b,其中k是某个整数。
这意味着b是a和b的差a bq的约数。
如果b是a和b的差a bq的约数,那么b也是a和b的差a bq (a bq)的约数,即b也是r的约数。
因此,如果b是a和b的约数,那么b也是a和b的差a bq的约数,即b也是r的约数。
3. 理解求余:
在辗转相除法中,求余实际上是将一个数除以另一个数后得到的余数。
当我们使用辗转相除法计算最大公约数时,求余数帮助我们逐步缩小问题的规模,直到余数为0。
每次求余后,我们将较大的数替换为较小的数,将余数替换为原来的较小数,从而不断缩小问题规模。
4. 示例:
假设我们要计算24和36的最大公约数。
24除以36得到商0和余数24(36 = 24 0 + 24)。
将36赋值给24,将24赋值给36,得到36除以24得到商1和余数12(36 = 24 1 + 12)。
将24赋值给36,将12赋值给24,得到36除以12得到商3和余数0(36 = 12 3 + 0)。
由于余数为0,所以12是24和36的最大公约数。
通过辗转相除法求余,我们可以逐步缩小问题规模,最终找到两个数的最大公约数。