编写函数求m和n的最大公约数与最小公倍数之差。
时间: 2023-06-05 18:48:01 浏览: 94
可以先编写两个函数分别求出m和n的最大公约数和最小公倍数,然后在主函数中调用这两个函数,计算它们的差值即可。
求最大公约数的函数可以使用辗转相除法,即不断用较小数去除较大数,直到余数为,此时较大数即为最大公约数。
求最小公倍数的函数可以使用最大公约数来计算,即两数的积除以它们的最大公约数。
以下是示例代码:
```python
def gcd(m, n):
while n != :
m, n = n, m % n
return m
def lcm(m, n):
return m * n // gcd(m, n)
def diff(m, n):
return lcm(m, n) - gcd(m, n)
m = 24
n = 36
print(diff(m, n)) # 输出12
```
相关问题
python编写函数求两个数最大公约数和最小公倍数。
可以使用辗转相除法来求解最大公约数,同时可以利用最大公约数求解最小公倍数。
以下是一个求解两个数最大公约数和最小公倍数的 Python 函数:
```python
def gcd_lcm(a, b):
# 求最大公约数
def gcd(x, y):
if y == 0:
return x
else:
return gcd(y, x % y)
# 求最小公倍数
lcm = a * b // gcd(a, b)
return gcd(a, b), lcm
```
使用示例:
```python
>>> gcd_lcm(12, 18)
(6, 36)
>>> gcd_lcm(24, 36)
(12, 72)
```
函数 `gcd_lcm` 接受两个参数 `a` 和 `b`,返回一个元组,其中第一个元素为最大公约数,第二个元素为最小公倍数。函数内部定义了一个 `gcd` 函数,使用递归的方式来实现辗转相除法求解最大公约数。最小公倍数可以通过公式 `lcm = a * b // gcd(a, b)` 来求解。
c语言编写函数求最大公约数和最小公倍数
这段代码实现了两个函数,分别用于求两个整数的最大公约数和最小公倍数。其中,yue函数用于求最大公约数,bie函数用于求最小公倍数。主函数调用这两个函数,并输出结果。具体实现过程如下:
```c
#include <stdio.h>
// 求最大公约数
int yue(int m, int n) {
int r;
if (m < n) {
int t = n;
n = m;
m = t;
}
while (n) {
r = m % n;
m = n;
n = r;
}
return m;
}
// 求最小公倍数
int bie(int m, int n) {
int p = m * n;
return (p / yue(m, n));
}
int main() {
int m, n;
int gy, gb;
scanf("%d%d", &m, &n);
gy = yue(m, n);
gb = bie(m, n);
printf("%d\n%d\n", gy, gb);
return 0;
}
```