输入两个正整数m和n(2<=m和n<=100000),计算它们的最大公约数和最小公倍数并输出。 输入格式: 在一行中输入两个整数m和n,2<=m<=100000,2<=n<=100000 输出格式: 最大公约数x 最小公倍数y用Java
时间: 2024-02-17 17:03:44 浏览: 55
好的,下面是用 Java 实现的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
sc.close();
// 求最大公约数
int gcd = gcd(m, n);
// 求最小公倍数
int lcm = lcm(m, n);
System.out.println(gcd + " " + lcm);
}
// 求最大公约数
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求最小公倍数
public static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
}
```
希望对你有帮助!
相关问题
输入两个正整数m和n(2<=m和n<=100000),计算它们的最大公约数和最小公倍数并输出。 输入格式: 在一行中输入两个整数m和n,2<=m<=100000,2<=n<=100000 输出格式: 最大公约数x 最小公倍数y
好的,我的回答如下:
```python
m, n = map(int, input().split())
# 求最大公约数
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
print(gcd(m, n), lcm(m, n))
```
希望能够帮到你!
输入两个正整数m和n,求其最大公约数和最小公倍数,其中最小公倍数的计算公式为:最小公倍数=m*n/最大公约数 输入 输入两个正整数m和n (1<=n,m<=10000) 输出 输出其最大公约数和最小公倍数
可以使用辗转相除法来求解最大公约数,具体实现如下:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int main() {
int m, n;
scanf("%d %d", &m, &n);
int g = gcd(m, n);
int l = m * n / g;
printf("%d %d\n", g, l);
return 0;
}
```
其中,`gcd`函数使用递归实现辗转相除法求解最大公约数,`main`函数中先读入两个正整数m和n,然后调用`gcd`函数求解最大公约数g,最后根据最小公倍数的计算公式计算出最小公倍数l并输出。
阅读全文