输入两个整数,用辗转相除法计算最大公约数和最小公倍数
时间: 2024-04-30 07:17:32 浏览: 69
辗转相除法,求最大公约数和最小公倍数
5星 · 资源好评率100%
好的,输入两个整数:a 和 b。
首先,我们可以使用辗转相除法计算最大公约数:
1. 令 r1 = a,r2 = b,q = r1 // r2,r = r1 % r2。
2. 如果 r == 0,则最大公约数为 r2。
3. 如果 r != 0,则继续令 r1 = r2,r2 = r,q = r1 // r2,r = r1 % r2,重复步骤 2。
代码实现如下:
```python
def gcd(a, b):
r1, r2 = a, b
while r2 != 0:
q = r1 // r2
r = r1 % r2
r1, r2 = r2, r
return r1
```
接下来,我们可以使用最大公约数计算最小公倍数:
最小公倍数 = a * b / 最大公约数
代码实现如下:
```python
def lcm(a, b):
return a * b // gcd(a, b)
```
完整代码如下:
```python
def gcd(a, b):
r1, r2 = a, b
while r2 != 0:
q = r1 // r2
r = r1 % r2
r1, r2 = r2, r
return r1
def lcm(a, b):
return a * b // gcd(a, b)
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
希望能对你有所帮助!
阅读全文