📅  最后修改于: 2023-12-03 14:57:11.757000             🧑  作者: Mango
本文介绍了一个用 Java 编写的程序,用于查询给定范围内的最小公倍数(LCM)。我们将使用 long
类型来处理较大的数字。
import java.util.Scanner;
public class LCMSearch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入范围的起始值: ");
long start = scanner.nextLong();
System.out.print("请输入范围的结束值: ");
long end = scanner.nextLong();
long lcm = findLCM(start, end);
System.out.println("范围 [" + start + ", " + end + "] 内的最小公倍数是: " + lcm);
}
// 计算最小公倍数
private static long findLCM(long start, long end) {
long lcm = start;
for (long i = start + 1; i <= end; i++) {
lcm = calculateLCM(lcm, i);
}
return lcm;
}
// 计算两个数的最小公倍数
private static long calculateLCM(long a, long b) {
return (a * b) / calculateGCD(a, b);
}
// 计算两个数的最大公约数
private static long calculateGCD(long a, long b) {
if (b == 0) {
return a;
}
return calculateGCD(b, a % b);
}
}
该程序基于两个关键函数 calculateLCM()
和 calculateGCD()
来计算最小公倍数。
calculateLCM()
函数计算两个数的最小公倍数,它使用以下公式:
lcm(a, b) = (a * b) / gcd(a, b)
calculateGCD()
函数计算两个数的最大公约数,它使用了欧几里得算法,即辗转相除法。该算法的原理是:
通过连续调用 calculateLCM()
和 calculateGCD()
函数,我们可以在给定范围内计算最小公倍数。在 findLCM()
函数中,我们从起始值开始,迭代计算范围内每个数的最小公倍数。
这个 Java 程序可以帮助你计算一个给定范围内的最小公倍数。你只需要提供范围的起始值和结束值,然后程序会返回最小公倍数的结果。你可以根据自己的需求,将该程序集成到你的代码中,以实现范围 LCM 查询的功能。