java给定2个正整数,求它们的最大公约数和最小公倍数,并输出。
时间: 2023-09-02 22:02:21 浏览: 118
最大公约数是指能同时整除两个数的正整数中最大的那个数。而最小公倍数是指能同时被两个数整除的最小的正整数。
求最大公约数的方法之一是使用欧几里得算法,原理是两个正整数的最大公约数等于它们的余数与除数的最大公约数。步骤如下:
1. 假设两个正整数为a和b,其中a > b。
2. 计算a除以b的余数r。
3. 若r为0,则b即为最大公约数。
4. 若r不为0,则用b替换a,用r替换b,再次执行步骤2。
5. 重复上述步骤直到余数为0,最后得到的b即为最大公约数。
求最大公约数的Java代码如下:
```java
public class GCD {
public static int findGCD(int a, int b) {
if (b == 0) {
return a;
} else {
return findGCD(b, a % b);
}
}
public static void main(String[] args) {
int num1 = 24;
int num2 = 36;
int gcd = findGCD(num1, num2);
System.out.println("最大公约数:" + gcd);
}
}
```
对于最小公倍数,可以利用最大公约数的性质得到,即两个数的最小公倍数等于它们的乘积除以最大公约数。最小公倍数的求解代码如下:
```java
public class LCM {
public static int findLCM(int a, int b) {
int gcd = GCD.findGCD(a, b);
int lcm = (a * b) / gcd;
return lcm;
}
public static void main(String[] args) {
int num1 = 24;
int num2 = 36;
int lcm = findLCM(num1, num2);
System.out.println("最小公倍数:" + lcm);
}
}
```
以上代码给定的两个正整数分别为24和36,最大公约数为12,最小公倍数为72。
阅读全文