计算最大公约数和最小公倍数
时间: 2024-05-01 14:13:33 浏览: 53
以下是Python中计算最大公约数和最小公倍数的方法:
1.计算最大公约数
```python
def gcd(a, b):
if b == 0:
return a
else:
return gcd(b, a % b)
```
2.计算最小公倍数
```python
def lcm(a, b):
return a * b // gcd(a, b)
```
其中,gcd函数使用了递归的方法,如果b等于0,则返回a,否则返回gcd(b, a%b)。lcm函数则是通过先计算出a和b的最大公约数,然后用a*b除以最大公约数得到最小公倍数。
相关问题
计算最大公约数和最小公倍数c语言
以下是两种C语言计算最大公约数和最小公倍数的方法:
方法一:利用定义法求最大公因数和最小公倍数
```c
#include <stdio.h>
int main() {
int a, b, i, j;
int max = 0;
scanf("%d%d", &a, &b);
for (i = a;; i++) // 求最小公倍数
{
if (i % a == 0 && i % b == 0) // 用大于等于a和b的数i(i大于等于a和b,无上限)分别除以a和b,同时除尽的第一个数即为最小公倍数
break; // 然后循环结束
}
for (j = 1; j <= a; j++) // 求最大公约数
{
if (a % j == 0 && b % j == 0) // 让a和b分别除以j(j从一开始,j有上限要小于等于a或b)
// 利用j++,如果a和b能同时除尽j
{
if (max < j) // 再判断j是不是小于a或b的最大公约数,不是则赋值最大值
max = j; // 这样求出来的max即为最大公约数
}
}
printf("%d %d\n", i, max); // 最后最大公约数用max表示了
return 0;
}
```
方法二:利用辗转相除法求最大公因数和最小公倍数
```c
#include <stdio.h>
int main() {
int a, b, x, y, t, gcd, lcm;
scanf("%d%d", &a, &b);
x = a;
y = b;
while (y != 0) // 辗转相除法求最大公因数
{
t = x % y;
x = y;
y = t;
}
gcd = x;
lcm = a * b / gcd; // 最小公倍数等于两数之积除以最大公约数
printf("%d %d\n", lcm, gcd);
return 0;
}
```
c语言计算最大公约数和最小公倍数
以下是C语言计算最大公约数和最小公倍数的两种方法:
1. 辗转相除法求最大公约数,用已知最大公约数求最小公倍数
```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) {
int c = gcd(a, b);
return a * b / c;
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("最大公约数是%d\n", gcd(a, b));
printf("最小公倍数是%d\n", lcm(a, b));
return 0;
}
```
2. 简易法求最小公倍数
```c
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
int max = a > b ? a : b;
while (1) {
if (max % a == 0 && max % b == 0) {
break;
} else {
max++;
}
}
printf("最小公倍数是%d\n", max);
return 0;
}
```
阅读全文