使用c语言输入两个正整数m和n,求其最大公约数和最小公倍数(用for语句)
时间: 2024-11-25 20:22:42 浏览: 5
在C语言中,可以使用欧几里得算法(也称辗转相除法)来计算两个正整数的最大公约数(GCD),然后利用公式 GCD(a, b) * LCM(a, b) = a * b 来找出它们的最小公倍数(LCM)。以下是使用for循环实现的一个简单示例:
```c
#include <stdio.h>
// 定义函数来计算GCD
int gcd(int m, int n) {
if (n == 0)
return m;
return gcd(n, m % n);
}
// 利用GCD计算LCM
int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
int main() {
int m, n;
// 输入两个正整数
printf("请输入两个正整数 m 和 n:");
scanf("%d %d", &m, &n);
// 计算并输出结果
int gcd_value = gcd(m, n);
int lcm_value = lcm(m, n);
printf("最大公约数 (GCD): %d\n", gcd_value);
printf("最小公倍数 (LCM): %d\n", lcm_value);
return 0;
}
```
在这个程序中,`gcd()` 函数递归地计算两数的最大公约数,而 `lcm()` 则使用已知的最大公约数来计算最小公倍数。用户会按照提示输入两个数字,程序将输出它们的最大公约数和最小公倍数。
阅读全文