在C语言中,可以使用欧几里得算法(辗转相除法)来计算两个正整数的最大公约数(GCD, Greatest Common Divisor),然后使用最大公约数和原始两个数的乘积除以最大公约数来计算最小公倍数(LCM, Least Common Multiple)。
#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) {
return (a / gcd(a, b)) * b; //最小公倍数可以通过两数的乘积除以它们的最大公约数来计算。
}
int main() {
int m, n;
// 读取两个正整数
printf("请输入两个正整数m和n: ");
scanf("%d %d", &m, &n);
// 计算并输出最大公约数
int g = gcd(m, n);
printf("最大公约数(GCD)为: %d\n", g);
// 计算并输出最小公倍数
int l = lcm(m, n);
printf("最小公倍数(LCM)为: %d\n", l);
return 0;
}