这个程序定义了两个函数,一个用于计算两个正整数的最大公约数 (GCD),另一个用于计算最小公倍数 (LCM)。在主函数中读取用户输入的两个正整数,并调用这两个函数输出结果。
cpp
#include <stdio.h>
// 计算最大公约数的函数,使用辗转相除法
int gcd(int a, int b) {
while (b != 0) {
int t = b;
b = a % b;
a = t;
}
return a;
}
// 计算最小公倍数的函数,公式为 (a * b) / gcd(a, b)
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int m, n;
printf("输入两个正整数: ");
scanf("%d %d", &m, &n);
printf("最大公约数: %d\n", gcd(m, n));
printf("最小公倍数: %d\n", lcm(m, n));
return 0;
}
代码说明:
gcd
函数采用了辗转相除法来计算最大公约数,直到余数为 0 为止。lcm
函数利用了gcd
函数来计算最小公倍数,公式为(a * b) / gcd(a, b)
。- 在
main
函数中,读取用户输入的两个整数,并调用gcd
和lcm
函数输出结果。