已知两个正整数m和n,求其最大公约数和最小公倍数。 输入格式: 两个用空格分隔的正整数m和n。 输出格式: 只有一行,为两个用空格分隔的正整数,依次代表m和n的最大公约数和最小公倍数。测试用例保证m、n及其最小公倍数可以用int存储。C语言
时间: 2024-10-28 09:12:23 浏览: 6
在C语言中,计算两个正整数的最大公约数(GCD, Greatest Common Divisor)和最小公倍数(LCM, Least Common Multiple)通常采用欧几里得算法(Euclidean Algorithm)和公式:gcd(a, b) = gcd(b, a mod b),lcm(a, b) = |a * b| / gcd(a, b)。
以下是一个简单的C语言函数来实现这个功能:
```c
#include <stdio.h>
// 定义最大公约数和最小公倍数的辅助函数
int gcd(int m, int n) {
while (n != 0) {
int temp = m % n;
m = n;
n = temp;
}
return m;
}
// 计算最小公倍数
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("最大公约数: %d\n", gcd_value);
printf("最小公倍数: %d\n", lcm_value);
return 0;
}
```
当你运行这个程序并输入两个正整数时,它会输出这两个数的最大公约数和最小公倍数。
阅读全文