辗转相除法与更相减损术
1.我们已经学过求最大公因数的知识,你能求出18与30的公因数吗?
2.如果公因数比较大而且根据我们的观察又不能得到一些公因数,我们又应该怎样求它们的最大公因数?比如求8251与6105的最大公因数?
知识导航:
辗转相除法:又叫欧几里得算法,是一种求两个正整数的最大公因数的古老有效的算法。
更相减损法:我国古代数学专著《九章算术》中介绍的一种求两个正整数的______算法。
名称 | 辗转相除法 | 更相减损术 |
区别 | ①以除法为主 ②两个整数差值较大时运算次数较少 ③相除余数为零时得结果 | ①以减法为主 ②两个整数的差值较大时,运算次数较多 ③相减,两数相等时得结果 ④相减前要做是否都是偶数的判断。 |
联系 | ①都是求最大公因数的方法 ②都是递归的思想 ③都要用循环结构来实现 |
典型例题:
一.辗转相除法
例1 。求两个正数8251和6105的最大公因数。
(分析:辗转相除→余数为零→得到结果)
解:8251=6105×1+2146
显然8251与6105的最大公因数也必是2146的因数,同样6105与2146的公因数也必是8251的因数,所以8251与6105的最大公因数也是6105与2146的最大公因数。
6105=2146×2+1813
2146=1813×1+333
1813=333×5+148
333=148×2+37
148=37×4+0
则37为8251与6105的最大公因数。
以上我们求最大公因数的方法就是辗转相除法。也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。
1. 为什么用这个算法能得到两个数的最大公因数?
第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;
第二步:若r0=0,则n为m,n的最大公因数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;
第三步:若r1=0,则r1为m,n的最大公因数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;
……
依次计算直至rn=0,此时所得到的rn-1即为所求的最大公因数。
练习:利用辗转相除法求两数4081与20723的最大公因数。
2。辗转相除法包含重复操作的步骤,因此我们可用__循环_______结构来构造算法,
利用辗转相除法求最大公因数的步骤:
二。更相减损术
我国早期也有解决求最大公因数问题的算法,就是更相减损术。
更相减损术求最大公因数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数因之。
翻译成现代汉语为:
第一步:任意给出两个正数;判断它们是否都是偶数。若是,就除以2;若不是,执行第二步。
第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公因数。
例2。 用更相减损术求392与252的最大公因数.
解:由于392与252都是偶数,需约简,分别除以4得:98与63
由于63不是偶数,把98和63以大数减小数,并辗转相减,即:98-63=35
63-35=28
35-28=7
28-7=21
21-7=14
14-7=7
所以,98与63的最大公因数是7。392与252的最大公因数为4*7=28。
1。用更相减损术能求出两个数的最大公因数的原理是什么?
练习:用更相减损术求两个正数576与246的最大公因数。
比较辗转相除法与更相减损术的区别
(1)都是求最大公因数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到