Java 求两个正整数m,n 的最大公约数。
时间: 2023-09-14 19:09:48 浏览: 99
可以使用辗转相除法来求解两个正整数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,即可得到它们的最大公约数。
java求两个正整数的最大公约数和最小公倍数
最大公约数是指两个或多个正整数共有约数中最大的一个数,最小公倍数是指两个或多个正整数公有的倍数中最小的一个数。
求两个正整数的最大公约数可以使用辗转相除法,即不断用较小的数去除较大的数,直到两个数相等为止,此时的数即为它们的最大公约数。
求两个正整数的最小公倍数可以先求出它们的最大公约数,然后用两个数的乘积除以最大公约数即可得到最小公倍数。