《高中数学 算法案例(辗转相除法)课件 新人教A版必修3》由会员分享,可在线阅读,更多相关《高中数学 算法案例(辗转相除法)课件 新人教A版必修3(9页珍藏版)》请在金锄头文库上搜索。
1、算 法 案 例 辗转相除法(第一课时)1、求两个正整数的最大公约数、求两个正整数的最大公约数(1)求)求25和和35的最大公约数的最大公约数(2)求)求49和和63的最大公约数的最大公约数2、求、求8251和和6105的最大公约数的最大公约数 25(1) 5535749(2) 77639所以,所以,25和和35的最的最大公约数为大公约数为5所以,所以,49和和63的最的最大公约数为大公约数为7辗转相除法(欧几里得算法)辗转相除法(欧几里得算法)观察求观察求8251和和6105的最大公约数的过程的最大公约数的过程 第一步第一步 用两数中较大的数除以较小的数,求得商和用两数中较大的数除以较小的数,
2、求得商和余数余数 8251=61051+2146结论:结论: 8251和和6105的公约数就是的公约数就是6105和和2146的的公约数,求公约数,求8251和和6105的最大公约数,只要求出的最大公约数,只要求出6105和和2146的公约数就可以了。的公约数就可以了。第二步第二步 对对6105和和2146重复第一步的做法重复第一步的做法6105=21462+1813同理同理6105和和2146的最大公约数也是的最大公约数也是2146和和1813的最大公约数。的最大公约数。 完整的过程完整的过程8251=61051+2146 6105=21462+1813 2146=18131+3331813
3、=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:除数变成被除数,余数变成除数:除数变成被除数
4、,余数变成除数S3:重复:重复S1,直到余数为,直到余数为0利用辗转相除法求两数4081与20723的最大公约数思考:你能把辗转相除法编成程序吗?思考:你能把辗转相除法编成程序吗?算法算法2:第一步:任意给定两个正整数,大的数记为第一步:任意给定两个正整数,大的数记为m, 小的记为小的记为n;第二步:用第二步:用m除以除以n,求得余数,求得余数r;第三步:判断第三步:判断r是否为是否为0,若,若r=0,则输出,则输出n, 若若r0,则令,则令m=n,n=r,再返回第二步,再返回第二步.算法算法1:第一步:任意给定两个正整数;第一步:任意给定两个正整数;第二步:用两数中较大那个除以较小那个,求得
5、第二步:用两数中较大那个除以较小那个,求得 商和余数;商和余数;第三步:比较上一步的余数与除数的大小关系,第三步:比较上一步的余数与除数的大小关系, 继续用较大数除以较小数,并一直重复继续用较大数除以较小数,并一直重复 上述步骤直到余数为上述步骤直到余数为0,则此时的除数即,则此时的除数即 为所求为所求. 辗转相除法是一个反复执行直到余数等于辗转相除法是一个反复执行直到余数等于0停止停止的步骤,这实际上是一个循环结构。的步骤,这实际上是一个循环结构。8251=61051+2146 6105=21462+1813 2146=18131+3331813=3335+148333=1482+37148
6、=374+0m = n q r用程序框图表示出右边的过程用程序框图表示出右边的过程r=m MOD nm = nn = rr=0?是否开始开始输入输入m,nr=m MOD nm=nn=rr=0?否否是是输出输出m结束结束程序:程序:INUPU m,nDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND算法算法2:开始开始输入输入m,nmn?x=m,m=n,n=x否否是是r=m MOD nm=nn=rr=0?否否是是输出输出m结束结束程序:程序:INUPU m,nIF mn THEN x=m m=n n=xEND IFDO r=m MOD n m=n n=rLOOP UNTIL r=0PRINT mEND算法算法1: