python编程求解任意两个整数的最大公约数
时间: 2023-07-03 12:09:44 浏览: 121
可以使用欧几里得算法(辗转相除法)求解任意两个整数的最大公约数。
算法步骤如下:
1. 用较大数除以较小数,得到余数
2. 如果余数为 0,则较小数即为最大公约数
3. 如果余数不为 0,则把较小数赋值给较大数,把余数赋值给较小数,再回到第 1 步
以下是 Python 代码实现:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
```
其中,a 和 b 分别为两个整数,gcd 函数返回它们的最大公约数。
相关问题
编程求解两个整数的最大公约数和最小公倍数。
以下是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))
```
首先定义了一个求最大公约数的函数`gcd(a, b)`,使用递归实现。当$b=0$时,返回$a$,否则返回$gcd(b, a \mod b)$。
然后定义了一个求最小公倍数的函数`lcm(a, b)`,使用最大公约数公式计算:$lcm(a, b) = \frac{a \times b}{gcd(a, b)}$。
最后读入两个整数$a$和$b$,分别调用`gcd(a, b)`和`lcm(a, b)`函数,打印结果。
编写送1归函数qcd(m.n) 求m和n的最大公约数,调用西数,求解任意两个整数的最大公约数,并求出最小公倍数。
以下是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)
# 定义送1归函数
def qcd(m, n):
d = gcd(m, n)
l = lcm(m, n)
print("最大公约数为:", d)
print("最小公倍数为:", l)
# 调用示例
qcd(12, 18)
```
输出结果为:
```
最大公约数为: 6
最小公倍数为: 36
```
阅读全文