定义一个函数实现求两个数的最大公约数和最小公倍数,并将结果作为返回值;
时间: 2023-09-13 16:06:02 浏览: 84
Python自定义函数实现求两个数最大公约数、最小公倍数示例
5星 · 资源好评率100%
### 回答1:
可以使用以下代码来实现:
```python
def gcd_lcm(a, b):
# 计算最大公约数
x, y = a, b
while y:
x, y = y, x % y
gcd = x
# 计算最小公倍数
lcm = a * b // gcd
# 返回最大公约数和最小公倍数
return gcd, lcm
```
以上代码中,使用了辗转相除法来计算最大公约数,然后使用了公式 a * b / gcd(a,b) 计算最小公倍数。最后将最大公约数和最小公倍数作为元组返回。
### 回答2:
求两个数的最大公约数可以使用辗转相除法,即不断用其中一个数除以另一个数得到余数,再用较小的那个数去除余数,直到余数为0时,被除数就是最大公约数。
最小公倍数可以通过最大公约数来求得,最小公倍数 = 两个数的乘积 / 最大公约数。
下面是实现这个函数的代码:
```python
def gcd_lcm(num1, num2):
# 求最大公约数
def gcd(a, b):
while b != 0:
temp = a % b
a = b
b = temp
return a
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b)
max_common_divisor = gcd(num1, num2)
min_common_multiple = lcm(num1, num2)
return max_common_divisor, min_common_multiple
# 输入示例
num1 = 18
num2 = 24
# 调用函数并打印结果
result = gcd_lcm(num1, num2)
print("最大公约数:", result[0])
print("最小公倍数:", result[1])
```
使用上述函数,给定 num1 和 num2 两个数,可以调用 gcd_lcm(num1, num2) 函数来求得它们的最大公约数和最小公倍数,并将结果以元组的形式返回。然后,通过元组索引可以分别获取最大公约数和最小公倍数的值,再进行后续操作。
### 回答3:
最大公约数是指能够同时整除两个数的最大正整数。最小公倍数是指能够同时被两个数整除的最小正整数。我们可以通过辗转相除法来求解这两个值。
定义一个函数gcd_lcm,接受两个参数num1和num2,用来表示两个需要求解的数。
首先,我们需要判断输入的两个数哪一个大,我们将较大的数赋值给a,将较小的数赋值给b。
然后,我们使用while循环,直到b为0。在循环中,我们使用取余操作,将a除以b的余数赋值给temp,然后将a赋值给b,将temp赋值给a。这样的循环操作直到b为0停止。
最后,我们将a的值作为最大公约数返回。
接着,我们可以使用最大公约数求得最小公倍数的公式:
最小公倍数 = (num1 * num2) / 最大公约数。
最小公倍数即为我们的返回值。
代码如下所示:
```python
def gcd_lcm(num1, num2):
if num1 > num2:
a = num1
b = num2
else:
a = num2
b = num1
while b:
temp = a % b
a = b
b = temp
gcd = a
lcm = (num1 * num2) // gcd
return gcd, lcm
```
我们可以调用该函数来测试其功能,例如:
```python
result = gcd_lcm(12, 16)
print("最大公约数:", result[0])
print("最小公倍数:", result[1])
```
输出结果为:
最大公约数: 4
最小公倍数: 48
阅读全文