算法案例2辗转相除法1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
巩固运用
• 例1.求78和36的最大公约数
巩固运用
• 例2.写出图示流程图所表 达算法的伪代码,并求出最 后输出的n的值
回顾反思
辗转相除法是当大数被小数除尽时,结束除 法运算,较小的数就是最大公约数. 更相减损术是当大数减去小数的差等于小数 时减法停止.较小的数就是最大公约数. 求三个以上(含三个数)的数的最大公约数时, 可依次通过求两个数的最大公约数与第三数 的最大公约数来求得.
算法案例2
求最大公约数
• 你能求出18与30的公约数吗? • 你能看出204与85的公约数吗?
算法1 辗转相除法
• 例1 求两个正数a=204和b=85的最大公约数。 • 分析:204与85两数都比较大,而且没有明显 的公约数,如能把它们都变小一点,根据已 有的知识即可求出最大公约数
算法1 辗转相除法
• 翻译出来为: • 第一步:任意给出两个正数;判断它们是否都是偶数。若是, 用2约简;若不是,执行第二步。 • 第二步:以较大的数减去较小的数,接着把较小的数与所得的 差比较,并以大数减小数。继续这个操作,直到所得的数相等 为止,则这个数(等数)就是所求的最大公约数。
算法2 更相减损术
• 例2 用更相减损术求91与49的最大公约数. • 解:由于49不是偶数,把91和49以大数减小 数,并辗转相减, • 即:91-48=42 49-42=7 42-7=35 • 35-7=28 28-7=21 21-7=14 • 14-7=7 • 所以,91与49的最大公约数是7。
比较辗转相除法与更相减损术的区别
• (1)都是求最大公约数的方法,计算上 辗转相除法以除法为主,更相减损术以 减法为主,计算次数上辗转相除法计算 次数相对较少,特别当两个数字大小区 别较大时计算次数的区别较明显。 • (2)从结果体现形式来看,辗转相除法 体现结果是以相除余数为0则得到,而更 相减损术则以减数与差相等而得到
• 204=85×2+34 • 显然204的最大公约数也必是85的约数, 同样204与85的公约数也必是34的约数, 所以204与85的最大公约数也是85与34的 最大公约数。 • 85=34×2+17 • 34=117×2+0 • 则17为204与85的最大公约数。
辗转相除法的基本步骤:
第一步:用较大的数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即为所求的最大公约数。
• 欧几里得辗转相除法找出a,b的最大公约数的步骤是: • (1)计算a÷b的余数r,若r=0,则b为a,b的最大公约数; • (2)若r=0,则把前面的除数b作为新的被除数,把r作 为新的除数,继续运算,直到余数为0,此时的除数即为 a,b的最大公约数. • 更相减损术找出a,b的最大公约数的步骤是 • (1)任意给出两个正数;判断它们是否都是偶数。 若是,用2约简;若不是,执行第二步。 • (2)以较大的数减去较小的数,接着把较小的数与 所得的差比较,并以大数减小数。继续这个操作, 直到所得的数相等为止,则这个数(等数)就是所 求的最大公约数。
程序框图:
r←MOD(m , n)
程序: Read m,n
While Mod(m,n)≠ 0 r←Mod(m,n) m←n n←r End While Print n End
m←n n←r
Hale Waihona Puke 否r=0是
算法2 更相减损术
• 我国早期也有解决求最大公约数问题的算法,就是 更相减损术。
• 可半者半之,不可半者,副置分母分子之数, 以少减多,更相减损,求其等也,以等数约 之。