Java分解质因数求最大公约数
时间: 2023-09-11 21:11:12 浏览: 174
Java 中可以使用以下代码来实现分解质因数并求最大公约数:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个正整数:");
int num1 = scanner.nextInt();
int num2 = scanner.nextInt();
int gcd = getGcd(num1, num2);
System.out.println(num1 + "和" + num2 + "的最大公约数为:" + gcd);
}
// 获取两个数的最大公约数
private static int getGcd(int num1, int num2) {
int result = 1;
int i = 2;
while (i <= num1 && i <= num2) {
if (num1 % i == 0 && num2 % i == 0) {
result *= i;
num1 /= i;
num2 /= i;
} else {
i++;
}
}
return result;
}
}
```
运行结果为:
```
请输入两个正整数:
24 36
24和36的最大公约数为:12
```
在此代码中,我们首先输入两个正整数,然后调用 `getGcd` 方法获取它们的最大公约数。在 `getGcd` 方法中,我们使用了分解质因数的思想,从 2 开始遍历,如果能同时被两个数整除,则说明它是它们的公约数,我们将其累乘到 `result` 中,并将两个数都除以这个公约数,以便进一步寻找更大的公约数。当遍历到其中一个数的平方根时,我们就可以得到两个数的最大公约数了。
阅读全文