c语言for循环调用两个函数求两个整数的最大公约数和最小公倍数
时间: 2024-12-13 07:20:36 浏览: 6
在C语言中,你可以使用for循环结合递归或者其他算法来分别计算两个整数的最大公约数(GCD)和最小公倍数(LCM),这里以欧几里得算法求GCD为例,然后通过公式LCM(a, b) = |a * b| / GCD(a, b) 计算LCM。以下是简单的示例:
```c
#include <stdio.h>
// 辗转相除法(欧几里得算法)求最大公约数
int gcd(int a, int b) {
for (int i = a > b ? a : b; i > 0; i--) {
if (a % i == 0 && b % i == 0)
return i;
}
return a == b ? a : 0; // 如果a和b相等,则它们本身就是最大公约数
}
// 根据GCD计算最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
int gcd_value = gcd(num1, num2);
int lcm_value = lcm(num1, num2);
printf("两数的最大公约数是:%d\n", gcd_value);
printf("两数的最小公倍数是:%d\n", lcm_value);
return 0;
}
```
阅读全文