辗转相除法和更相减损法讲义.pptx
辗转相除法(欧几里得算法)观察用辗转相除法求8251和6105的最大公约数的过程 第一步 用两数中较大的数除以较小的数,求得商和余数8251=61051+2146结论:8251和6105的公约数就是6105和2146的公约数,求8251和6105的最大公约数,只要求出6105和2146的公约数就可以了。第二步 对6105和2146重复第一步的做法6105=21462+1813同理6105和2146的最大公约数也是2146和1813的最大公约数。第1页/共12页完整的过程8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0例2 用辗转相除法求225和135的最大公约数225=1351+90135=901+4590=452显然37是148和37的最大公约数,也就是8251和6105的最大公约数 显然45是90和45的最大公约数,也就是225和135的最大公约数 思考1:从上面的两个例子可以看出计算的规律是什么?S1:用大数除以小数S2:除数变成被除数,余数变成除数S3:重复S1,直到余数为0第2页/共12页利用辗转相除法求最大公约数的步骤如下:利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数第一步:用较大的数m m除以较小的数除以较小的数n n得到得到一个商一个商q q0 0和一个余数和一个余数r r0 0;(m=nq(m=nq0 0+r+r0 0)第二步:若第二步:若r r0 00 0,则,则n n为为m m,n n的最大公约的最大公约数;若数;若r r0 000,则用除数,则用除数n n除以余数除以余数r r0 0得到一个得到一个商商q q1 1和一个余数和一个余数r r1 1;(n=r(n=r0 0qq1 1+r+r1 1)第三步:若第三步:若r r1 10 0,则,则r r0 0为为m m,n n的最大公约的最大公约数;若数;若r r1 100,则用除数,则用除数r r0 0除以余数除以余数r r1 1得到一个得到一个商商q q2 2和一个余数和一个余数r r2 2;(r(r0 0=r=r1 1qq2 2+r+r2 2)依次计算直至依次计算直至r rn n0 0,此时所得到的,此时所得到的r rn-1n-1 即为所求的最大公约数。即为所求的最大公约数。第3页/共12页 辗转相除法是一个反复执行直到余数等于0停止的步骤,这实际上是一个循环结构。8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148=374+0m=n q r用程序框图表示出右边的过程r=m MOD nm=nn=rr=0?是否第4页/共12页辗转相除除法的程序框图与程序 否是第5页/共12页九章算术更相减损术 算理:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也,以等数约之。第一步:任意给定两个正整数;判断他们是否都是偶数。若是,则用2约简;若不是则执行第二步。第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。第6页/共12页例3 用更相减损术求98与63的最大公约数解:由于63不是偶数,把98和63以大数减小数,并辗转相减 9863356335283528728721217141477所以,98和63的最大公约数等于7 练习练习2 2:用更相减损术求两个正数:用更相减损术求两个正数8484与与7272的最大的最大公约数。公约数。(12)(12)第7页/共12页第一步,给定两个正整数,不妨设mn,第二步,若m,n都是偶数,则不断用2约简,使他们不同时是偶数,约简后的两个数仍记为m,n第三步,d=m-n第四步,判断”d0”是否成立,若是,则将n,d 中较大者记为m,较小的记为n,返回第三步;否则,2k*d(k是约简整数的2的个数)为所求的最大公约数.更相减损术算法第8页/共12页开始输m,n(mn)K=0m,n为偶数?K=k+1m=m/2n=n/2d=m-ndn?dn?是否m=nn=dd=m-nm=d是输出2k d结束是否否第9页/共12页INPUT “m,n=“;m,nIF mn THEN a=m m=n n=aEND IFK=0WHILE m MOD 2=0 AND n MOD 2=0 m=m/2 n=n/2 k=k+1WEND d=m-nWhile dn IF dn then m=d ELSE m=n n=d End if d=m-nWend d=2kdPRINT dEnd 第10页/共12页辗转相除法与更相减损术的比较辗转相除法与更相减损术的比较:(1 1)都是求最大公约数的方法,计算上辗)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主转相除法以除法为主,更相减损术以减法为主;计算次数上辗转相除法计算次数相对较少,特计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别别当两个数字大小区别较大时计算次数的区别较明显。较明显。(2 2)从结果体现形式来看,辗转相除法体)从结果体现形式来看,辗转相除法体现结果是以相除余数为现结果是以相除余数为0 0则得到,而更相减损术则得到,而更相减损术则以减数与差相等而得到则以减数与差相等而得到.第11页/共12页感谢您的观看!第12页/共12页