输入两个正整数,输出最大公约数,java辗转相除
时间: 2024-09-20 15:06:41 浏览: 65
在Java中,可以使用欧几里得算法(也称为辗转相除法或更相减损术)来计算两个正整数的最大公约数(Greatest Common Divisor, GCD)。这个算法基于这样一个性质:对于任意两个正整数a和b(其中a > b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。
以下是Java代码实现:
```java
public class Main {
public static int gcd(int num1, int num2) {
// 如果num2为0,返回num1作为结果,因为最大公约数定理
if (num2 == 0) {
return num1;
} else {
// 使用辗转相除法递归求解
return gcd(num2, num1 % num2);
}
}
public static void main(String[] args) {
int num1 = 48; // 第一个正整数
int num2 = 18; // 第二个正整数
int result = gcd(num1, num2);
System.out.println("The greatest common divisor of " + num1 + " and " + num2 + " is " + result);
}
}
```
在这个例子中,`gcd`函数接受两个整数作为输入,通过不断将较大的数替换为其与较小数的余数,直到余数为0为止。此时,较小的非零数就是原两数的最大公约数。
阅读全文