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,枚举法
枚举算法简单粗暴,他暴力的枚举所有可能,尽可能地尝试所有的方法,然后找到自己想要的答案
以上就是关于求最大公约与最小公倍的一些算法。