INPUT "m=";m
INPUT "n=";n
IF m x=m m=n n=x END IF r=m MOD n WHILE r<>0 r=m MOD n m=n n=r WEND PRINT n END 要点诠释: 辗转相除法的基本步骤是用较大的数除以较小的数,考虑到算法中的赋值语句可以对同一变量多次赋值,我们可以把较大的数用变量m表示,把较小的数用变量n表示,这样式子就是一个反复执行的步骤,因此可以用循环结构实现算法. 要点二:更相减损术 我国早期也有解决求最大公约数问题的算法,就是更相减损术. 更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之. 翻译出来为: 第一步:任意给出两个正整数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步. 第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数. 理论依据: 由,得与有相同的公约数 更相减损术一般算法: 第一步,输入两个正整数; 第二步,如果,则执行,否则转到; 第三步,将的值赋予; 第四步,若,则把赋予,把赋予,否则把赋予,重新执行; 第五步,输出最大公约数. 程序: INPUT "a=",a INPUT "b=",b WHILE a<>b IF a>=b a=a-b;