以下是C语言编写求解最大公约数和最小公倍数的程序:
#include <stdio.h>
int main() {
int m, n;
printf("请输入两个正整数:");
scanf("%d %d", &m, &n);
int gcd = 1; // 最大公约数初始化为1
int lcm = m * n; // 最小公倍数初始化为两数之积
for (int i = 1; i <= m && i <= n; i++) {
if (m % i == 0 && n % i == 0) { // 如果i同时整除m和n
gcd = i; // 则i为最大公约数
lcm = (m / i) * n; // 最小公倍数为(m/i)*n
}
}
printf("%d %d\n", gcd, lcm); // 输出最大公约数和最小公倍数
return 0;
}
程序首先要求用户输入两个正整数m和n,然后使用循环遍历1到m和n之间的所有整数,查找能够同时整除m和n的整数,即为最大公约数。同时,程序计算出最小公倍数,即两数之积除以最大公约数。最后,程序输出最大公约数和最小公倍数。