最大公约数(Greatest Common Divisor,GCD),也称最大公因数(Highest Common Factor,HCF)、最大公因子,是一种数学概念,指两个或多个整数共有约数中最大的一个。
最大公约数的求解方法有质因数分解法、短除法、辗转相除法、更相减损法等,与其相对应的概念是最小公倍数。
两个数最小公倍数等于他们的乘积除以最大公约数
先看效果图
实现代码如下
import java.util.Scanner;
//求最大公约数和最小公倍数
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个数:");
int num1 = scanner.nextInt();
System.out.print("请输入第二个数:");
int num2 = scanner.nextInt();
//可以用三元运算符或者Math.max方法
int max = Math.max(num1, num2); // 定义最大值
// 定义最小值
int min = Math.min(num1, num2);
int maxNumber = 0;//定义最大公约数用于接收最大公约数用于后面的方法二
//求最大公约数,最大公约数不大于最小的那个数
for (int i = min; i >=1 ; i--) {
if (num1%i==0 && num2%i==0){
System.out.println("最大公约数是:"+i);//从最大的遍历,找到便结束进程
maxNumber = i; //接收最大公约数用于方法二
break;
}
}
//求最小公倍数,最小公倍数不小于最大的那个数,不大于他们两个乘积
for (int j = max; j <=(num1*num2); j++) {
if (j%num1==0 && j%num2==0) {
System.out.println("方法一:最小公倍数是"+j);
break;
}
}
//方法二最小公倍数其实就是两个数乘积除以最大公约数
System.out.println("方法二:最小公倍数是"+(num1*num2)/maxNumber);
}
}