1:3算法案例
案例1辗转相除法与更相减损术
案例1 辗转相除法与更相减损术
〖创设情景,揭示课题〗 [问题1:在小学,我们已经学过求最大公约数 的知识,你能求出18与30的最大公约数吗? 21830 先用两个数公有的质因数 3915 连续去除一直除到所得 35 18和30的最大公约的商是互质数为止然后 数是2×3=6 把所有的除数连乘起来 [问题2]:我们都是利用找公约数的方法来求最大 公约数,如果公约数比较大而且根据我们的观察 又不能得到一些公约数,我们又应该怎样求它们 的最大公约数?比如求8251与6105的最大公约数?
3 5 9 15 [问题1]:在小学,我们已经学过求最大公约数 的知识,你能求出18与30的最大公约数吗? 〖创设情景,揭示课题〗 2 18 30 3 ∴18和30的最大公约 数是2×3=6. 先用两个数公有的质因数 连续去除,一直除到所得 的商是互质数为止,然后 把所有的除数连乘起来. [问题2]:我们都是利用找公约数的方法来求最大 公约数,如果公约数比较大而且根据我们的观察 又不能得到一些公约数,我们又应该怎样求它们 的最大公约数?比如求8251与6105的最大公约数?
〖研探新知〗 1.辗转相除法: 例1求两个正数8251和6105的最大公约数。 分析:8251与6105两数都比较大,而且没 有明显的公约数,如能把它们都变小一点,根 据已有的知识即可求出最大公约数 解:8251=6105×1+2146 显然8251与6105的最大公约数也必是2146 的约数,同样6105与2146的公约数也必是8251 的约数,所以8251与6105的最大公约数也是 6105与2146的最大公约数
〖研探新知〗 1.辗转相除法: 例1 求两个正数8251和6105的最大公约数。 分析:8251与6105两数都比较大,而且没 有明显的公约数,如能把它们都变小一点,根 据已有的知识即可求出最大公约数. 解:8251=6105×1+2146 显然8251与6105的最大公约数也必是2146 的约数,同样6105与2146的公约数也必是8251 的约数,所以8251与6105的最大公约数也是 6105与2146的最大公约数
〖研探新知〗 1.辗转相除法: 例1求两个正数8251和6105的最大公约数。 解:8251=6105×1+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.辗转相除法: 例1 求两个正数8251和6105的最大公约数。 解:8251=6105×1+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年左右首先提出的
利用辗转相除法求最大公约数的步骤如下: 第一步:用较大的数m除以较小的数n得到 个商q和一个余数r;(m=n×qo+r 第二步:若ro=0,则n为m,n的最大公约 数;若ro≠0,则用除数n除以余数r得到一个 商q和一个余数r1;(n=r×q1+r) 第三步:若r1=0,则r为m,m的最大公约 数;若r1≠0,则用除数r0除以余数r1得到一个 商q2和一个余数r2;(r=r1×q2+r2) 依次计算直至rn=0,此时所得到的rn1 即为所求的最大公约数。 >2呢签哪吵米
利用辗转相除法求最大公约数的步骤如下: 第一步:用较大的数m除以较小的数n得到 一个商q0和一个余数r0;(m=n×q0+r0) 第二步:若r0=0,则n为m,n的最大公约 数;若r0≠0,则用除数n除以余数r0得到一个 商q1和一个余数r1;(n=r0×q1+r1) 第三步:若r1=0,则r0为m,n的最大公约 数;若r1≠0,则用除数r0除以余数r1得到一个 商q2和一个余数r2;(r0=r1×q2+r2) …… 依次计算直至rn =0,此时所得到的rn-1 即为所求的最大公约数
辗转相除法求最大 公约数算法: 第一步给定两个正数m,n 第二步,计算m除以n所得到余数r 第三步,m=n,n=r 第四步,若r=0,则m,n的最大公约数等于m; 否则返回第二步
• 第一步,给定两个正数m,n • 第二步,计算m除以n所得到余数r • 第三步,m=n,n=r • 第四步,若r=0,则m,n的最大公约数等于m; 否则返回第二步 辗转相除法求最大 公约数算法:
4.辗转相除法的程序框图及程序: C开始 INPUT mn 输入两个正数m F m0 r= m mod n「n=r mEn 是[mnn=r r:0? m mod n 输出n WEND PRInT n C结束 END
否 4. 辗转相除法的程序框图及程序: 开始 输入两个正数m,n m0 m=n n=r r=m MOD n WEND PRINT n END x=n n=m
练习1:利用辗转相除法求两数4081与 20723的最大公约数 20723=4081×5+318; 4081=318×12+265; 318=265×1+53 265=53×5+0
练习1:利用辗转相除法求两数4081与 20723的最大公约数. 20723=4081×5+318; 4081=318×12+265; 318=265×1+53; 265=53×5+0
2.更相减损术: 我国早期也有解决求最大公约数问题的算 法,就是更相减损术。 更相减损术求最大公约数的步骤如下:可 半者半之,不可半者,副置分母子之数,以少 减多,更相减损,求其等也,以等数约之。 翻译出来为:第一步:任意给出两个正数 判断它们是否都是偶数。若是,用2约简;若不是, 执行第二步。 第二步:以较大的数减去较小的数,接着把 较小的数与所得的差比较,并以大数减小数。继 续这个操作,直到所得的数相等为止,则这个数 (等数)就是所求的最大公约数
2.更相减损术: 我国早期也有解决求最大公约数问题的算 法,就是更相减损术。 更相减损术求最大公约数的步骤如下:可 半者半之,不可半者,副置分母·子之数,以少 减多,更相减损,求其等也,以等数约之。 翻译出来为:第一步:任意给出两个正数; 判断它们是否都是偶数。若是,用2约简;若不是, 执行第二步。 第二步:以较大的数减去较小的数,接着把 较小的数与所得的差比较,并以大数减小数。继 续这个操作,直到所得的数相等为止,则这个数 (等数)就是所求的最大公约数