c语言输入两个正整数m和 n,求其最大公约数和最小公倍数。
时间: 2024-12-18 11:27:56 浏览: 6
c代码-输入两个正整数m和n,求其最大公约数和最小公倍数。
在C语言中,计算两个正整数的最大公约数(Greatest Common Divisor,简称GCD)和最小公倍数(Least Common Multiple,简称LCM),通常会采用欧几里得算法(Euclidean Algorithm)来求解GCD,然后利用公式 LCM(a, b) = |a * b| / GCD(a, b) 来求取LCM。
以下是简单的步骤:
1. 定义一个函数 `gcd` 来计算两个数的最大公约数:
```c
int gcd(int m, int n) {
if (n == 0)
return m;
else
return gcd(n, m % n);
}
```
2. 再定义一个函数 `lcm` 来计算最小公倍数:
```c
int lcm(int m, int n) {
return (m * n) / gcd(m, n); // 使用上面求得的GCD值
}
```
3. 主程序部分接收用户输入并调用这两个函数:
```c
#include <stdio.h>
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("最大公约数(GCD)是:%d\n", gcd_value);
printf("最小公倍数(LCM)是:%d\n", lcm_value);
return 0;
}
```
阅读全文