1. 输入两个正整数m和n,求其最大公约数和最小公倍数 c语言
时间: 2024-10-08 11:01:32 浏览: 36
大学经典C语言编程试题.doc
在C语言中,计算两个正整数`m`和`n`的最大公约数(Greatest Common Divisor, GCD)和最小公倍数(Least Common Multiple, LCM)通常可以利用欧几里得算法(Euclidean Algorithm)来找到GCD,然后通过以下公式计算LCM:
```c
int gcd(int m, int n) {
if (n == 0)
return m;
else
return gcd(n, m % n);
}
int lcm(int m, int n) {
return (m * n) / gcd(m, n);
}
```
首先定义一个递归函数`gcd()`,它不断交换`m`和`n`,并将较大的数替换为其除以较小数的余数,直到余数为0,此时较小的数即为两者的最大公约数。
然后,在`lcm()`函数中,通过乘积除以最大公约数得到最小公倍数。
如果你需要用户输入这两个数并运行这个程序,你可以添加下面的主函数部分:
```c
#include <stdio.h>
int main() {
int m, n;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
int gcd_val = gcd(m, n);
int lcm_val = lcm(m, n);
printf("最大公约数 (GCD): %d\n", gcd_val);
printf("最小公倍数 (LCM): %d\n", lcm_val);
return 0;
}
```
在这个例子中,用户将看到提示输入两个数字,然后程序会输出它们的最大公约数和最小公倍数。
阅读全文