定义函数求最大公约数,最小公倍数
时间: 2023-12-21 19:29:49 浏览: 46
以下是Python中定义函数求最大公约数和最小公倍数的例子:
1. 求最大公约数
```python
def gcd(a, b):
"""
求a和b的最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
```
2. 求最小公倍数
```python
def lcm(a, b):
"""
求a和b的最小公倍数
"""
return a * b // gcd(a, b)
```
其中,`gcd`函数使用了递归的方法,不断将`b`和`a%b`代入函数中,直到`b`为0,此时`a`即为最大公约数。`lcm`函数则是通过先求出最大公约数,再用两数之积除以最大公约数得到最小公倍数。
相关问题
定义一个getmax函数求最大公约数和最小公倍数
好的,以下是一个求最大公约数和最小公倍数的 getmax 函数的定义,它使用了辗转相除法:
```python
def getmax(num1, num2):
"""
求两个整数的最大公约数和最小公倍数
:param num1: 整数1
:param num2: 整数2
:return: num1和num2的最大公约数和最小公倍数
"""
# 求最大公约数
a, b = num1, num2
while b != 0:
temp = a % b
a = b
b = temp
gcd = a
# 求最小公倍数
lcm = num1 * num2 // gcd
return gcd, lcm
```
使用方法:
```python
a = 12
b = 18
gcd, lcm = getmax(a, b)
print(gcd) # 输出 6
print(lcm) # 输出 36
```
在C语言中使用函数求最大公约数和最小公倍数
可以用以下代码实现:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int a, b;
printf("请输入两个正整数:");
scanf("%d%d", &a, &b);
printf("最大公约数为:%d\n", gcd(a, b));
printf("最小公倍数为:%d\n", lcm(a, b));
return 0;
}
```
首先定义了两个函数:`gcd`用于求最大公约数,`lcm`用于求最小公倍数。其中`gcd`函数使用了递归算法,不断将较大的数除以较小的数,直到较小的数为0,此时较大的数即为最大公约数。`lcm`函数则通过最大公约数计算得到最小公倍数。
在主函数中,通过`scanf`函数读入两个正整数,然后调用`gcd`和`lcm`函数分别求得最大公约数和最小公倍数,并通过`printf`函数输出结果。