C语言最大公约数最小公倍数

C语言最大公约数最小公倍数三种方法

这是一些关于求最大公约数,最小公倍数的方法,有错误之处,请大家指正。

以下是关于最大公约,最小公倍的定义:

最大公因数:也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。

最小公倍数:两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。

最小公倍数又等于两个数的乘积除以最大公约数。

   1,辗转相除法  又名欧几里德算法(Euclidean algorithm),是求最大公约数的一种方法。它的具体做法是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。


2,更相减损术

(如果需要对分数进行约分,那么)可以折半的话,就折半(也就是用2来约分)。如果不可以折半的话,那么就比较分母和分子的大小,用大数减去小数,互相减来减去,一直到减数与差相等为止,用这个相等的数字来约分。

例、用更相减损术求98与63的最大公约数

解:把98和63以大数减小数,并辗转相减

98-63=35

63-35=28

35-28=7

28-7=21

21-7=14

14-7=7

所以,98和63的最大公约数等于7。

3,枚举法

枚举算法简单粗暴,他暴力的枚举所有可能,尽可能地尝试所有的方法,然后找到自己想要的答案

以上就是关于求最大公约与最小公倍的一些算法。

猜你喜欢

转载自blog.csdn.net/weixin_41946004/article/details/85490073