两个正整数,计算这两个数的最小公倍数 输入 输入数据只有一行,包括两个不大于1000的正整数. 输出 输出数据也只有一行,给出这两个数的最小公倍数。 样例输入 Copy 10 14 样例输出 Copy 70
时间: 2024-10-17 07:05:17 浏览: 30
输入两个正整数m和n.docx
5星 · 资源好评率100%
要计算两个正整数的最小公倍数(LCM),我们可以使用辗转相除法(欧几里得算法)或更直接的方法,即先计算最大公约数(GCD),然后用两数之积除以最大公约数得到最小公倍数。
这里我提供一个使用辗转相除法计算GCD的简单代码,接着用这个GCD求最小公倍数:
```c
#include <stdio.h>
// 计算最大公约数 (Euclidean algorithm)
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;
// 输入两个正整数
scanf("%d %d", &num1, &num2);
// 检查输入是否合法
if (num1 <= 0 || num2 <= 0 || num1 > 1000 || num2 > 1000) {
printf("Invalid input.\n");
return 1;
}
// 计算并输出最小公倍数
int result = lcm(num1, num2);
printf("The least common multiple of %d and %d is %d.\n", num1, num2, result);
return 0;
}
```
阅读全文