用辗转相除法求两个正整数的最大公约数和最小公倍数

辗转相除法求最大公约数是一种常用的求两个数的最大公约数的方法。方法是:以小数除大数,如果能整除,那么小数就是所求的最大公约数。否则就用余数来除除数;再用新除法的余数去除刚才的余数。依此类推,直到一个除法能够整除,这时作为除数的数就是所求的最大公约数。
具体过程如下:
输入正整数 m 和 n ,保证 m 不小于 n ;
如果 n ≠0,则求 r = m % n ,然后 m = n , n = r ;重复此操作直到 n =0;
如果 n =0,则此时 m 就是最大公约数。


例如:求4453和5767的最大公约数时,可作如下除法.
5767÷4453=1余1314
4453÷1314=3余511

1314÷511=2余292
511÷292=1余219
292÷219=1余73
219÷73=3
于是得知,5767和4453的最大公约数是
73.
若要求这两个数的最小公倍数,其值就是这两数之积除以这两数的最大公约数得到的商。


代码如下用辗转相除法求两个正整数的最大公约数和最小公倍数_第1张图片

 用辗转相除法求两个正整数的最大公约数和最小公倍数_第2张图片

 

 

 

你可能感兴趣的:(c语言)