C语言:输入2个正整数,求最小公倍数
时间: 2024-12-02 21:18:47 浏览: 27
c代码-输入两个正整数m和n,求其最大公约数和最小公倍数。
在C语言中,计算两个正整数的最小公倍数(LCM,Least Common Multiple)通常需要借助一些基本的数学原理,比如欧几里得算法(辗转相除法),因为两个数的乘积等于它们的最大公约数(GCD)乘以最小公倍数。
以下是一个简单的示例程序,使用递归来计算最大公约数,并基于此求最小公倍数:
```c
#include <stdio.h>
// 辗转相除法计算最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 求最小公倍数
int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
int main() {
int num1, num2;
printf("请输入两个正整数:");
scanf("%d %d", &num1, &num2);
// 确保输入的是正整数
if(num1 <= 0 || num2 <= 0) {
printf("请输入正整数!\n");
return 0;
}
int lcm_value = lcm(num1, num2);
printf("两数的最小公倍数是:%d\n", lcm_value);
return 0;
}
```
在这个程序中,用户首先输入两个正整数,然后`gcd`函数用于计算这两个数的最大公约数,最后`lcm`函数利用公式`(a * b) / gcd(a, b)`来得到最小公倍数。
阅读全文