int m = sl.nextInt(); // 第一个正整数 int n = sl.nextInt(); // 第二个正整数 int gcd = getGcd(m, n); // 求最大公约数 System.out.println(gcd); // 输出最大公约数 } // 求最大公约数,采用辗转相除法 private static int getGcd(int m, int n) { while (n != 0) { int r = m % n; m = n; n = r; } return m; 解析
时间: 2024-02-14 16:12:30 浏览: 80
用辗转相除法求最大公约数
这段 Java 代码的功能是求两个正整数的最大公约数。下面是代码的解析:
```java
int m = sl.nextInt(); // 第一个正整数
int n = sl.nextInt(); // 第二个正整数
int gcd = getGcd(m, n); // 求最大公约数
System.out.println(gcd); // 输出最大公约数
// 求最大公约数,采用辗转相除法
private static int getGcd(int m, int n) {
while (n != 0) {
int r = m % n;
m = n;
n = r;
}
return m;
}
```
代码中使用了 `Scanner` 类来读入用户输入的两个正整数。然后调用 `getGcd` 方法来计算它们的最大公约数。`getGcd` 方法采用的是辗转相除法来求解最大公约数。
辗转相除法(又叫欧几里得算法)的基本思想是:用较大数除以较小数,然后用较小数去除较大数的余数,再用上一步的余数去除较小数的余数,如此反复,直到余数为零为止。最后的被除数即为最大公约数。
你可以自己尝试运行这段代码,来验证它是否正确实现了求两个正整数的最大公约数。
阅读全文