最小公倍数用c++怎么写
时间: 2023-12-03 08:01:51 浏览: 121
以下是用C语言实现求最小公倍数的代码:
```c
#include <stdio.h>
int main() {
int num1, num2, max, lcm;
printf("Enter two positive integers: ");
scanf("%d %d", &num1, &num2);
// 找到较大的数
max = (num1 > num2) ? num1 : num2;
while (1) {
if (max % num1 == 0 && max % num2 == 0) {
lcm = max;
break;
}
++max;
}
printf("The LCM of %d and %d is %d.", num1, num2, lcm);
return 0;
}
```
这个程序通过循环来找到最小公倍数。首先,程序会读入两个正整数。然后,程序会找到这两个数中的最大值,并通过一个 while 循环不断增加这个最大值,直到找到一个同时能够被这两个数整除的数,这个数就是最小公倍数。最后,程序会输出这个最小公倍数。
相关问题
最小公倍数用c++怎么写高效的代码
以下是用 C 语言编写的高效的求最小公倍数的代码:
```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 / gcd(a, b) * b;
}
int main() {
int num1, num2, result;
printf("Enter two numbers: ");
scanf("%d %d", &num1, &num2);
result = lcm(num1, num2);
printf("LCM of %d and %d is %d\n", num1, num2, result);
return 0;
}
```
上面的代码使用了欧几里得算法来求最大公约数,然后通过公式 LCM(a, b) = a * b / GCD(a, b) 来求最小公倍数。该算法时间复杂度为 O(log n),其中 n 是两个数中较大的那个数。因此,该算法是高效的。
求最小公倍数用c++
以下是使用C++求最小公倍数的代码示例:
```cpp
#include <iostream>
using namespace std;
// 求最大公约数
int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int a = 12, b = 18;
cout << "最小公倍数为:" << lcm(a, b) << endl; // 输出:36
return 0;
}
```
阅读全文