写出两个函数分别求两个整数的最大公因数和最小公倍数
时间: 2024-06-18 09:05:27 浏览: 179
求两个整数的最大公因数可以使用欧几里得算法,即辗转相除法。具体实现如下:
```python
def gcd(a, b):
while b:
a, b = b, a % b
return a
```
求两个整数的最小公倍数可以使用最大公因数求解,即两数之积等于最大公因数和最小公倍数的积。具体实现如下:
```python
def lcm(a, b):
return a * b // gcd(a, b)
```
相关问题
写出两个函数分别求出两个整数的最大公约数和最小公倍数,用主函数调用这两个函数
以下是C语言实现求两个整数的最大公约数和最小公倍数的代码,其中maxgys()函数用于求最大公约数,maxgbs()函数用于求最小公倍数,main()函数用于调用这两个函数并输出结果:
```c
#include <stdio.h>
int maxgys(int a, int b);
int maxgbs(int a, int b);
int main() {
int a, b, mgys, mgbs;
printf("请输入两个数:");
scanf("%d%d", &a, &b);
mgys = maxgys(a, b);
mgbs = maxgbs(a, b);
printf("最大公约数=%d\n", mgys);
printf("最小公倍数=%d\n", mgbs);
return 0;
}
int maxgys(int a, int b) {
int t, r;
if (a < b) {
t = a;
a = b;
b = t;
}
while ((r = a % b) != 0) {
a = b;
b = r;
}
return b;
}
int maxgbs(int a, int b) {
int mgys = maxgys(a, b);
return a * b / mgys;
}
```
写两个函数分别求出两个正整数的最大公约数和最小公倍数
以下是两个函数,分别用于计算给定两个正整数的最大公约数和最小公倍数:
```python
def gcd(a, b):
"""
计算a和b的最大公约数
"""
if not isinstance(a, int) or not isinstance(b, int) or a <= 0 or b <= 0:
return "Invalid input!"
while b:
a, b = b, a % b
return a
def lcm(a, b):
"""
计算a和b的最小公倍数
"""
if not isinstance(a, int) or not isinstance(b, int) or a <= 0 or b <= 0:
return "Invalid input!"
return a * b // gcd(a, b)
```
其中,gcd函数使用了辗转相除法来计算最大公约数,lcm函数则是通过先计算最大公约数,再用两数之积除以最大公约数来计算最小公倍数。
使用示例:
```python
a = 12
b = 18
print(gcd(a, b)) # 输出:6
print(lcm(a, b)) # 输出:36
```
阅读全文