用C++写一个求最小公倍数的程序
时间: 2023-09-30 19:06:08 浏览: 45
好的,以下是一个用C++实现的求最小公倍数的程序:
```c++
#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 / gcd(a, b) * b;
}
int main() {
int a, b;
cout << "请输入两个整数:";
cin >> a >> b;
cout << "它们的最小公倍数是:" << lcm(a, b) << endl;
return 0;
}
```
使用辗转相除法求出两个数的最大公约数,再将两个数相乘除以最大公约数即可得到最小公倍数。
相关问题
用Dev-C++写一个计算最小公倍数的算法
以下是使用Dev-C++编写的计算最小公倍数的算法:
```c
#include <stdio.h>
int main()
{
int num1, num2, lcm, i;
printf("请输入两个整数: ");
scanf("%d %d", &num1, &num2);
// 计算最大公约数
for (i = 1; i <= num1 && i <= num2; ++i) {
if (num1 % i == 0 && num2 % i == 0)
lcm = i;
}
// 计算最小公倍数
lcm = (num1 * num2) / lcm;
printf("最小公倍数是: %d", lcm);
return 0;
}
```
首先,程序要求用户输入两个整数。然后,程序使用for循环计算这两个整数的最大公约数。在循环中,如果两个数都可以被i整除,则i是它们的一个公约数。最后,lcm被设置为最大公约数,因为在循环中最后一次i被设置为最大公约数。
接下来,程序通过将num1和num2相乘,再除以最大公约数来计算最小公倍数。最后,程序输出最小公倍数。
注意:以上程序假设用户输入的两个整数都是正数。如果用户输入的是负数,则可能需要进行额外的处理。
写一个C++代码求最大公约数最小公倍数
下面是一个用辗转相除法求最大公约数和最小公倍数的C++代码:
```c++
#include <iostream>
using namespace std;
int gcd(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}
int lcm(int a, int b) {
return a / gcd(a, b) * b;
}
int main() {
int a, b;
cout << "请输入两个数a和b:" << endl;
cin >> a >> b;
cout << "最大公约数是:" << gcd(a, b) << endl;
cout << "最小公倍数是:" << lcm(a, b) << endl;
return 0;
}
```
输入两个数a和b,程序会输出它们的最大公约数和最小公倍数。