用java求两个正整数m,n的最大公约数
时间: 2024-10-24 21:03:01 浏览: 9
在Java中,可以使用欧几里得算法(Euclidean Algorithm)来求两个正整数`m`和`n`的最大公约数(Greatest Common Divisor, GCD)。以下是实现的一个简单版本:
```java
public class Main {
public static void main(String[] args) {
int m = 48; // 输入第一个正整数
int n = 18; // 输入第二个正整数
// 使用辗转相除法求最大公约数
int gcd = gcd(m, n);
System.out.println("两个数的最大公约数是: " + gcd);
}
// 欧几里得算法计算gcd
private static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
```
在这个例子中,`gcd`函数递归地调用自身,每次都用较小的数替换原来的较大数,并将余数作为新的较大数。当余数变为0时,较大的数就是两数的最大公约数。
相关问题
Java 求两个正整数m,n 的最大公约数。
可以使用辗转相除法来求解两个正整数m和n的最大公约数,具体步骤如下:
1. 如果m小于n,则交换m和n的值,使得m大于n。
2. 用m除以n,得到余数r。
3. 如果r等于0,则n就是最大公约数。
4. 如果r不等于0,则用n除以r,得到余数r1。
5. 如果r1等于0,则r就是最大公约数。
6. 如果r1不等于0,则重复步骤4和5,直到余数为0为止。
下面是使用Java代码实现:
```
public static int gcd(int m, int n) {
if (m < n) {
int temp = m;
m = n;
n = temp;
}
while (n != 0) {
int r = m % n;
m = n;
n = r;
}
return m;
}
```
调用该方法,传入两个正整数m和n,即可得到它们的最大公约数。
Java 简单求两个正整数m,n 的最大公约数。
可以使用辗转相减法来求解两个正整数m和n的最大公约数,具体步骤如下:
1. 如果m小于n,则交换m和n的值,使得m大于n。
2. 用m减去n,得到差d。
3. 如果d等于n,则n就是最大公约数。
4. 如果d大于n,则用n和d的差来替换m的值,即m = d - n。
5. 如果d小于n,则用n来替换m的值,即m = n。
6. 重复步骤2到5,直到d等于n为止。
下面是使用Java代码实现:
```
public static int gcd(int m, int n) {
if (m < n) {
int temp = m;
m = n;
n = temp;
}
while (m - n != 0) {
int d = m - n;
if (d > n) {
m = d;
} else {
m = n;
n = d;
}
}
return n;
}
```
调用该方法,传入两个正整数m和n,即可得到它们的最大公约数。
阅读全文