程序:
INPUT m,n
DO
r=m MOD n
m=n
n=r
LOOP UNTIL r=0
PRINT m
END
点评:从教学实践看,有些学生不能理解算法中的转化过程,例如:求8 251与6 105的最大公约数,为什么可以转化为求6 105与2 146的公约数.因为8 251=6 105×1+2 146,
可以化为8 251-6 105×1=2 164,所以公约数能够整除等式两边的数,即6 105与2 146的公约数也是8 251与6 105的公约数.
变式训练
你能用当型循环结构构造算法,求两个正整数的最大公约数吗?试画出程序框图和程序.
解:当型循环结构的程序框图如下图: