- 2
- 0
- 约 13页
- 2018-05-08 发布于浙江
- 举报
写出求两个正整数a,b(ab)的最大公约数的一个算法 辗转相除法 例1 用辗转相除法求a=204和b=85的最大公约数。 欧几里得辗转相除法找出a,b的最大公约数的步骤是: (1)计算a÷b的余数r,若r=0,则b为a,b的最大公约数; (2)若r≠0,则把前面的除数b作为新的被除数,把余数r作为新的除数,继续运算,直到余数为0,此时的除数即为a,b的最大公约数. 回顾反思 辗转相除法是当大数被小数除尽时,结束除法运算,较小的数就是最大公约数. 求三个以上(含三个数)的数的最大公约数时,可依次通过求两个数的最大公约数与第三数的最大公约数来求得. * 已学过的伪代码中的几种基本算法语句: (1)赋值语句: 变量←表达式或变量或常数. (2)输入语句: Read a,b (3)输出语句: (4)条件语句: Print a,b If A Then B Else C End If 复习 当型语句: While p 循环体 End while 直到型语句: Do 循环体 Until p End Do 循环语句 伪代码中的: p A Y N p A Y N 当循环的次数已经确定,可用“For”语句表示. “For”语句伪代码格式: For I From “初值” To “终值” step “步长” …… End For 3 5 9 15 在小学,我们学过求两个正整数的最大公约数的方法,先用两个数公有的质因数连续去除,一直到所得的商是互质数为止,然后把所以的除数乘起来,例如,求18与30的最大共约数: 18 30 2 3 所以,18与30的最大共约数是:2×3=6. 引入 案例2 公元前3世纪,欧几里得在《原本》第七篇中介绍了求两个正整数a,b(ab)的最大公约数的方法,即求出一列数: 这列数从第三项开始,每一项都是前两项相除所得的余数,余数为0的前一项rn,即是a和b的最大公约数。这种方法称为“欧几里得辗转相除法” 分析: 因此,204与85的最大公约数是r2=17. 求a,b(ab)的最大公约数的算法为: S1 输入两个正整数a,b; S2 如果Mod(a,b) ≠0,那么转S3,否则转S6; S3 r ←Mod(a,b) ; S4 a←b; S5 b←r,转S2; S6 输出b. r←MOD(a , b) a←b b←r r=0 是 否 Read a,b While Mod(a,b)≠ 0 r←Mod(a,b) a←b b←r End While Print b End 流程图与伪代码
原创力文档

文档评论(0)