一.概念:
1.最大公因数:
最大公因数,也称最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个。
2.最小公倍数
两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。
3.互质数
互质数为 数学 中的一种概念,即两个或多个整数的公因数只有1的非零自然数。 公因数只有1的两个非零自然数 ,叫做互质数。
二.求最大公因数
这里介绍辗转相除法
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
例如a = 15, b = 10
流程为:
a=15 b=10
15 % 10 = 1 .....(余5)
a=10 b=5
10 % 5 = 2 .....(余0)
a=5 b=0
return a;
注意,辗转相除法不用要求a一定大于b
三.求最小公倍数
由下面介绍的性质可得 a*b = 最小公倍数*最大公因数
因此最大公因数 = a*b/最小公倍数
四.性质
1.最小公倍数是最大公因数的倍数(最小公倍数 / 最大公因数 = 一个整数)
2.a与b的和差是最大公因数的倍数
3.最大公因数一定小于或等于min(a,b)
4.最小公倍数一定大于或等于max(a,b)
5.a*b = 最小公倍数*最大公因数
6.如果a, b两个数是互质数,最大公因数等于1,最小公倍数等于a*b