python求两个正整数的最大公约数和最小公倍数
时间: 2023-04-23 13:05:19 浏览: 71
最大公约数(GCD)是两个或多个整数的最大公因数,最小公倍数(LCM)是两个或多个整数的最小公倍数。
求两个正整数的最大公约数可以使用欧几里得算法,也称为辗转相除法。该算法的基本思想是,用较小的数除以较大的数,将余数作为新的被除数,原来的除数作为新的除数,重复这个过程,直到余数为,此时除数就是最大公约数。
求两个正整数的最小公倍数可以使用最大公约数来计算。最小公倍数等于两个数的乘积除以它们的最大公约数。
例如,对于正整数12和18,它们的最大公约数是6,最小公倍数是36。
相关问题
Python求两个正整数的最大公约数和最小公倍数
可以使用辗转相除法求最大公约数,最小公倍数可以通过最大公约数求得。
以下是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)
num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
print(f"{num1}和{num2}的最大公约数是{gcd(num1, num2)}")
print(f"{num1}和{num2}的最小公倍数是{lcm(num1, num2)}")
```
输入示例:
```
请输入第一个正整数:12
请输入第二个正整数:18
```
输出示例:
```
12和18的最大公约数是6
12和18的最小公倍数是36
```
python求两个正整数的最大公约数和最小公倍数。
可以使用辗转相除法求解最大公约数,以及利用最大公约数求解最小公倍数。
代码如下:
```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 = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
输出结果:
```
请输入第一个正整数:12
请输入第二个正整数:18
最大公约数为: 6
最小公倍数为: 36
```