编写一个程序,求两个数的最大公约数和最小公倍数
时间: 2023-11-17 17:02:33 浏览: 112
最大公约数可以用辗转相除法求解,最小公倍数可以用两数之积除以它们的最大公约数求解。以下是求解最大公约数和最小公倍数的 Python 代码:
``` python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
相关问题
用Python编写一个程序求两个数的最大公约数和最小公倍数
最大公约数可以用辗转相除法求解,代码如下:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
最小公倍数可以用最大公约数求解,代码如下:
```python
def lcm(a, b):
return a * b // gcd(a, b)
```
完整代码如下:
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
return a * b // gcd(a, b)
# 测试代码
a = 24
b = 36
print("最大公约数:", gcd(a, b))
print("最小公倍数:", lcm(a, b))
```
使用java编写一个程序,求两个数的最大公约数和最小公倍数
在Java中,你可以使用欧几里得算法(Euclidean algorithm)来计算两个整数的最大公约数(Greatest Common Divisor, GCD),然后利用这个GCD和其中一个数来计算最小公倍数(Least Common Multiple, LCM)。以下是简单的步骤和代码示例:
```java
public class Main {
// 欧几里得算法计算最大公约数
public static int gcd(int num1, int num2) {
if (num2 == 0)
return num1;
else
return gcd(num2, num1 % num2);
}
// 计算最小公倍数
public static int lcm(int num1, int num2) {
int lcm = num1 * num2 / gcd(num1, num2); // 根据公式 lcm(a,b) = |a*b| / gcd(a,b)
return lcm;
}
public static void main(String[] args) {
int num1 = 48, num2 = 18; // 测试的两个数
System.out.println("最大公约数 (GCD): " + gcd(num1, num2));
System.out.println("最小公倍数 (LCM): " + lcm(num1, num2));
}
}
```
在这个程序中,`gcd()` 函数递归地计算两个数的最大公约数,而 `lcm()` 函数则直接使用 GCD 的计算结果来得到最小公倍数。
阅读全文
相关推荐













