用C语言实现求两数的最大公约数

方法一:

辗转相除法

在两个数中,找出大数,用大数除以小数,得到整数商和余数,然后再不断地用除数(原来的小数)除以余数,直到没有余数为止。

那么除数即为最大公约数。

所以我们可以用一个循环来进行被除数、除数和余数之间的位置互换。

也可以用goto语句来进行循环操作。(goto语句在一个程序当中最好不要多次出现,否则程序很有可能混乱)

代码:

下图为运行结果


方法二:

更相减损法

第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止。
则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。
代码如下:


猜你喜欢

转载自blog.csdn.net/zhengxinyu666/article/details/80041363