利用辗转相除法先求得 最大公约数,继而通过两数的乘积除以最大公约数,得到最小公倍数。
/**
* description: 使用辗转相除法求最小公倍数 和 最大公约数
*/
public class gcd {
public static void calculate(int input1,int input2){
if (input1==0 || input2 ==0) return;
int bigDivsior=0;//定义最大公约数
int multiple=input1*input2;//定义最小公倍数,方便计算
int temp=1;//用于临时存储的变量
//保证input1 大于 input2
if (input1<input2){
temp = input1;
input1 = input2;
input2 = temp;
}
//辗转相除法
while (temp!=0){
temp = input1%input2;
input1 = input2;
bigDivsior = input2;
input2 = temp;
}
multiple =multiple/bigDivsior;
System.out.println("greatest common divisor is: "+bigDivsior+"\n"
+"least common multiple is: "+multiple);
}
public static void main(String[] args) {
calculate(20,8);
}
}
greatest common divisor is: 4
least common multiple is: 40