一 .最大公约数:
如果有两个数A、B ,求最大公约数?
step1: 判断A,B 是否想等,如果想等,最大公约数就是A或 B;
step2: 用A,B中较大的数除以较小的数,如果余数为0 ,那么最大公约数就是较小的那个数。如果余数不为0,到第三步。
step3: 用A,B 中较小的那个数除以第二步所得的余数,如果为0,那么第二部所得的余数就是最大公约数,如不是到第四步。
step4:经过step2 和 step3 得到两个余数,用step2 中的余数 除以 step3中的余数,如果余数为0 ,最大公约数就是step3余数,如果余数不为0,那么每次用上一次所得的余数除以本次所得的余数,如果余数为0,那么本次计算中的除数就是最大公约数。
public int getMaxConventionNumber(int a, int b){
if(a == b){
System.out.println(a);
return a;
}
int temp =0;
if(a < b){
temp = a;
a = b;
b = temp;
}
//求最大公约数
while(b != 0 ){
temp = a % b;
a = b;
b = temp;
}
return b;
}
二、最小公倍数
- 求出最大公约数后,最小公倍数就非常简单了,最小公倍数 = (数字1 * 数字 2)/ 最大公约数
public int getMinCommonMultiple(int a, int b){
if(a == b){return a;}
int temp =getMaxConventionNumber(a,b);
return (a*b)/temp;
}