python编写两个函数,分别求两个整数的最大公约数和最小公倍数,在主函数调用这两个函数,并输出结果。两个整数由键盘输入。
时间: 2023-05-31 22:17:56 浏览: 549
Python自定义函数实现求两个数最大公约数、最小公倍数示例
5星 · 资源好评率100%
### 回答1:
以下是Python代码:
```python
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
def lcm(a, b):
return a * b // gcd(a, b)
if __name__ == '__main__':
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print("最大公约数为:", gcd(a, b))
print("最小公倍数为:", lcm(a, b))
```
解释:
- `gcd` 函数使用递归方式实现了求两个整数的最大公约数,如果 b 等于 0,则返回 a,否则返回 `gcd(b, a % b)`。
- `lcm` 函数使用了 `gcd` 函数,先求出最大公约数,然后用两个整数的乘积除以最大公约数即可得到最小公倍数。
- 在主函数中,先从键盘输入两个整数,然后调用 `gcd` 和 `lcm` 函数分别求出最大公约数和最小公倍数,并输出结果。
### 回答2:
Python的math模块里已经有gcd和lcm函数可以用来求最大公约数和最小公倍数,但是我们也可以使用自己编写的函数来实现同样的功能。
对于最大公约数,我们可以使用辗转相除法(也叫欧几里得算法)来实现。该算法的核心思想是:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。具体实现如下:
```python
def gcd(a, b):
if b == 0:
return a
return gcd(b, a % b)
```
对于最小公倍数,我们可以利用最大公约数的性质来求解。最小公倍数等于两数乘积除以最大公约数。具体实现如下:
```python
def lcm(a, b):
return a * b // gcd(a, b)
```
然后在主函数里面,我们可以调用这两个函数,并将得到的结果输出。代码如下:
```python
a = int(input("请输入第一个整数: "))
b = int(input("请输入第二个整数: "))
print("最大公约数是:", gcd(a, b))
print("最小公倍数是:", lcm(a, b))
```
这里我们用input函数获取用户输入的两个整数,然后依次调用gcd和lcm函数,并将结果打印输出。
完整代码如下:
```python
import math
def gcd(a, b):
if b == 0:
return a
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))
```
当然,因为Python的math模块里也有相应的函数,所以我们也可以直接调用math模块里面的函数来实现相同的功能。
```python
import math
a = int(input("请输入第一个整数: "))
b = int(input("请输入第二个整数: "))
print("最大公约数是:", math.gcd(a, b))
print("最小公倍数是:", a * b // math.gcd(a, b))
```
这样更简洁一些。
### 回答3:
Python是一种非常流行的编程语言,它可以用来编写各种各样的程序。本文将介绍两个Python函数,用于计算两个整数的最大公约数和最小公倍数。在主函数中,我们将使用这两个函数,并输出结果。
首先,我们需要了解什么是最大公约数和最小公倍数。最大公约数是两个数中能够同时整除的最大的数,最小公倍数是两个数的公共倍数中最小的数。例如,12和16的最大公约数是4,最小公倍数是48。
下面是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)
```
这里我们定义了两个函数,分别是`gcd`和`lcm`。`gcd`用于计算最大公约数,`lcm`用于计算最小公倍数。其中,`//`表示整除操作符,`%`表示取余操作符。
在`gcd`函数中,我们使用了递归来计算最大公约数。如果`b`等于0,说明`a`就是最大公约数,可以直接返回。否则,我们对`a`和`b`的余数调用`gcd`函数,直到`b`等于0为止。
在`lcm`函数中,我们使用了`gcd`函数。由于两个数的最小公倍数等于两数之积除以它们的最大公约数,因此我们可以直接调用`gcd`函数,并将结果乘以`a`和`b`的积。
接下来,我们需要在主函数中调用这两个函数:
```
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
max_gcd = gcd(a,b)
min_lcm = lcm(a,b)
print("最大公约数是:",max_gcd)
print("最小公倍数是:",min_lcm)
```
在主函数中,我们首先从键盘输入两个整数,然后调用`gcd`和`lcm`函数,并将结果存储在变量`max_gcd`和`min_lcm`中。最后,我们使用`print`函数输出最大公约数和最小公倍数的值。
以上就是Python编写两个函数,分别求两个整数的最大公约数和最小公倍数的方法。如果您正在学习Python,希望这篇文章能对您有所帮助。
阅读全文