使用python辗转相除法求两个数的最大公约数、及最小公倍数。
时间: 2023-05-18 15:07:12 浏览: 87
可以使用以下代码来求两个数的最大公约数和最小公倍数:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
def lcm(a, b):
return a * b // gcd(a, b)
```
其中,`gcd` 函数使用辗转相除法求最大公约数,`lcm` 函数则使用最大公约数求最小公倍数。
相关问题
Python辗转相除法求两个数的最大公约数和最小公约数
Python中,我们可以使用欧几里得算法(也称辗转相除法)来求两个数的最大公约数(Greatest Common Divisor,GCD)和最小公倍数(Least Common Multiple,LCM)。这是基于这样一个事实:对于整数a和b,它们的最大公约数等于a除以b的余数c和b之间的最大公约数。
以下是如何使用辗转相除法实现:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
# 计算最小公倍数通常需要先求出最大公约数
def lcm(a, b):
return abs(a * b) // gcd(a, b)
# 示例
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
gcd_value = gcd(num1, num2)
lcm_value = lcm(num1, num2)
print(f"{num1}和{num2}的最大公约数是:{gcd_value}")
print(f"{num1}和{num2}的最小公倍数是:{lcm_value}")
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)
```
其中,`gcd`函数用于求最大公约数,`lcm`函数用于求最小公倍数。
辗转相除法的基本思想是:用较大的数除以较小的数,再用余数去除较小的数,如此反复,直到余数为为止。最后的除数就是最大公约数,而最小公倍数等于两数之积除以最大公约数。
例如,求出30和45的最大公约数和最小公倍数,可以这样调用函数:
```python
>>> gcd(30, 45)
15
>>> lcm(30, 45)
90
```
因此,30和45的最大公约数是15,最小公倍数是90。
阅读全文