Java程序查找两个数的最小公倍数
在本文中,我们将学习如何使用Java查找两个数字的最小公倍数。L.C.M.或最小公倍数是两个值的最小正值,它是这两个值的倍数。
例如,3和4的倍数是
3 → 3, 6, 9, 12, 15 ... 4 → 4, 8, 12, 16, 20 ...
这两个数的最小倍数是12,因此3和4的最小公倍数是12。
我们将通过两种不同的方法学习解决这个问题:增量方法和使用最大公约数 (GCD)的基于公式的方法。
问题陈述
编写一个Java程序来查找两个数字的最小公倍数。以下是相同内容的演示 -
输入
Enter first number ::
6
Enter second number ::
10
输出
LCM of given numbers is :: 1059
不同的方法
以下是查找两个数字的最小公倍数的不同方法 -
使用增量方法
以下是使用增量方法查找两个数字的最小公倍数的步骤 -
- 首先,从java.util包导入Scanner类以允许用户输入。
- 初始化整数变量a、b、max、step和lcm。
- 实例化Scanner对象以读取用户的输入。
- 要求用户输入两个整数,并将它们存储在a和b中。
- 确定最大值:识别两个数字中较大的一个,并将其分配给max和step。
- 使用while循环检查可被a和b整除的最小数字
- 如果max可被a和b整除,则将lcm设置为max并退出循环。
- 如果不是,则将max增加step并继续检查。
- 将计算出的LCM打印到控制台,并关闭Scanner对象以防止资源泄漏。
示例
以下是查找两个数字的最小公倍数的Java程序 -
import java.util.Scanner;
public class LCMOfTwoNumbers {
public static void main(String args[]){
int a, b, max, step, lcm = 0;
Scanner sc = new Scanner(System.in);
System.out.println("Enter first number ::");
a = sc.nextInt();
System.out.println("Enter second number ::");
b = sc.nextInt();
if(a > b){
max = step = a;
}
else{
max = step = b;
}
while(a!= 0) {
if(max % a == 0 && max % b == 0) {
lcm = max;
break;
}
max += step;
}
System.out.println("LCM of given numbers is :: "+lcm);
}
}
输出
Enter first number :: 6 Enter second number :: 10 LCM of given numbers is :: 30
使用Math.gcd()方法
以下是使用Math.gcd()计算LCM的Java程序 -
- 从java.util包导入Scanner类。
- 声明两个整数变量a和b以存储用户输入的值,以及一个变量lcm以存储结果。
- 创建一个Scanner对象以读取用户的输入。
- 提示用户输入两个数字,并将这些值赋给a和b。
- 使用公式计算LCM:LCM(a, b) = (a * b) / GCD(a, b),其中GCD使用Math.gcd()方法获得。
- 在控制台中显示计算出的LCM。
- 关闭程序。
示例
以下是查找两个数字的最小公倍数的Java程序 -
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
int a, b, lcm;
Scanner sc = new Scanner(System.in);
System.out.println("Enter first number ::");
a = sc.nextInt();
System.out.println("Enter second number ::");
b = sc.nextInt();
// Calculate LCM using the formula: LCM(a, b) = (a * b) / GCD(a, b)
lcm = (a * b) / gcd(a, b);
System.out.println("LCM of given numbers is :: " + lcm);
}
// Method to calculate GCD
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
输出
Enter first number ::
33
Enter second number ::
44
LCM of given numbers is :: 132
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP