这个程序定义了两个函数,一个用于计算两个正整数的最大公约数 (GCD),另一个用于计算最小公倍数 (LCM)。在主函数中读取用户输入的两个正整数,并调用这两个函数输出结果。
#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
函数输出结果。