c语言怎么求最大公约数和最小公倍数
时间: 2023-12-03 21:38:42 浏览: 112
以下是C语言求最大公约数和最小公倍数的两种方法:
方法一:辗转相除法
```c
#include <stdio.h>
int main() {
int a, b, t, r;
printf("请输入求最大公约数的两个数:");
scanf("%d%d", &a, &b);
if (a < b) { // 交换a,b的值,使a>b
t = a;
a = b;
b = t;
}
r = a % b;
while (r != 0) { // 辗转相除
a = b;
b = r;
r = a % b;
}
printf("最大公约数为:%d\n", b);
printf("最小公倍数为:%d\n", a * (t / b)); // 最小公倍数 = a * b / 最大公约数
return 0;
}
```
方法二:枚举法
```c
#include <stdio.h>
int main() {
int a, b, i, max, min;
printf("请输入求最大公约数的两个数:");
scanf("%d%d", &a, &b);
max = a > b ? a : b; // 取a,b中的较大值
min = a < b ? a : b; // 取a,b中的较小值
for (i = min; i >= 1; i--) { // 从较小值开始枚举
if (max % i == 0 && min % i == 0) { // 找到最大公约数
printf("最大公约数为:%d\n", i);
printf("最小公倍数为:%d\n", max * min / i); // 最小公倍数 = a * b / 最大公约数
break;
}
}
return 0;
}
```
阅读全文