写两个函数,求最大公约数和最小公倍数
时间: 2023-04-24 18:07:38 浏览: 57
函数一:求最大公约数
输入:两个正整数a和b
输出:a和b的最大公约数
算法:辗转相除法
代码:
```
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
函数二:求最小公倍数
输入:两个正整数a和b
输出:a和b的最小公倍数
算法:最小公倍数等于两数之积除以它们的最大公约数
代码:
```
def lcm(a, b):
return a * b // gcd(a, b)
```
相关问题
写两个函数求最大公约数,最小公倍数c语言
以下是两种C语言写的求最大公约数和最小公倍数的函数:
方法一:利用定义法求最大公约数和最小公倍数
```c
#include <stdio.h>
int gcd(int a, int b) {
int max = 0;
for (int i = 1; i <= a && i <= b; i++) {
if (a % i == 0 && b % i == 0) {
max = i;
}
}
return max;
}
int lcm(int a, int b) {
int i;
for (i = a;; i++) {
if (i % a == 0 && i % b == 0) {
break;
}
}
return i;
}
int main() {
int a, b;
scanf("%d%d", &a, &b);
int max = gcd(a, b);
int min = lcm(a, b);
printf("%d %d\n", min, max);
return 0;
}
```
方法二:最小公倍数求法同上,最大公约数方法不同
```c
#include <stdio.h>
int gcd(int a, int b) {
int max = 0;
for (int i = a;; i--) {
if (a % i == 0 && b % i == 0) {
max = i;
break;
}
}
return max;
}
int lcm(int a, int b) {
int i;
for (i = a;; i++) {
if (i % a == 0 && i % b == 0) {
break;
}
}
return i;
}
int main() {
int a, b;
scanf("%d%d", &a, &b);
int max = gcd(a, b);
int min = lcm(a, b);
printf("%d %d\n", min, max);
return 0;
}
```
写两个函数分别求最大公因数和最小公倍数
好的,以下是两个函数的实现:
```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`函数则利用最大公因数求解最小公倍数。