python辗转相除法求最大公约数和最小公倍数
时间: 2023-04-29 22:02:06 浏览: 415
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。
相关问题
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("请输入第二个整数:"))
#调用函数计算最大公约数和最小公倍数
greatest_common_divisor = gcd(num1, num2)
least_common_multiple = lcm(num1, num2)
#输出结果
print("最大公约数为:", greatest_common_divisor)
print("最小公倍数为:", least_common_multiple)
```
使用输入测试的结果示例:
输入:
请输入第一个整数:12
请输入第二个整数:20
输出:
最大公约数为: 4
最小公倍数为: 60
Python求用辗转相除法求最大公约数和最小公倍数
Python中可以使用辗转相除法(也叫欧几里得算法)来计算两个整数的最大公约数(Greatest Common Divisor,简称GCD)。这是一种通过不断将较大的数除以较小的数,然后用余数替换较大数,直到余数为0为止,此时的较小数就是两数的最大公约数。
以下是一个简单的Python函数示例:
```python
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
# 示例
print(gcd(48, 18)) # 输出:6
```
对于求最小公倍数(Least Common Multiple,简称LCM),通常有以下公式:`lcm(a, b) = abs(a * b) // gcd(a, b)`。这是因为两个数的乘积等于它们的最大公约数和最小公倍数的乘积。
下面是计算最小公倍数的函数:
```python
def lcm(a, b):
return abs(a * b) // gcd(a, b)
# 示例
print(lcm(48, 18)) # 输出:144
```
阅读全文