引导学生回顾
人们在长期的生活,生产和劳动过程中,创造了整数,分数,小数,正负数及其计算,以及无限逼近任一实数的方法,在代数学,几何学方面,我国在宋,元之前也都处于世界的前列。我们在小学,中学学到的算术,代数,从记数到多元一次联立方程的求根方法,都是我国古代数学家最先创造的。更为重要的是我国古代数学的发展有着自己鲜明的特色,也就是"寓理于算",即把解决的问题"算法化"。本章的内容是算法,特别是在中国古代也有着很多算法案例,我们来看一下并且进一步体会"算法"的概念。 1. 求两个正整数最大公约数的算法
学生通常会用辗转相除法求两个正整数的最大公约数:
例1:求78和36的最大公约数
(1) 利用辗转相除法
步骤:
计算出7836的余数6,再将前面的除数36作为新的被除数,366=6,余数为0,则此时的除数即为78和36的最大公约数。
理论依据: ,得与有相同的公约数
(2) 更相减损之术
指导阅读课本P----P,总结步骤
步骤:
以两数中较大的数减去较小的数,即78-36=42;以差数42和较小的数36构成新的一对数,对这一对数再用大数减去小数,即42-36=6,再以差数6和较小的数36构成新的一对数,对这一对数再用大数减去小数,即36-6=30,继续这一过程,直到产生一对相等的数,这个数就是最大公约数
即,
理论依据:
由,得与有相同的公约数
算法:
输入两个正数;
如果,则执行,否则转到;
将的值赋予;
若,则把赋予,把赋予,否则把赋予,重新执行;
输出最大公约数
程序:
a=input("a=")
b=input("b=")
while a<>b
if a>=b
a=a-b;
else
b=b-a
end
end
print(%io(2),a,b)