C++程序查找最小公倍数
两个数的最小公倍数 (LCM) 是这两个数的倍数中最小的数。
例如:假设我们有以下两个数:15 和 9。
15 = 5 * 3 9 = 3 * 3
因此,15 和 9 的最小公倍数是 45。
查找两个数的最小公倍数的程序如下所示:
示例
#include <iostream>
using namespace std;
int main() {
int a=7, b=5, lcm;
if(a>b)
lcm = a;
else
lcm = b;
while(1) {
if( lcm%a==0 && lcm%b==0 ) {
cout<<"The LCM of "<<a<<" and "<<b<<" is "<<lcm;
break;
}
lcm++;
}
return 0;
}输出
The LCM of 7 and 5 is 35
在上述程序中,变量 lcm 设置为两个数中较大的一个。这通过以下代码片段演示。
if(a>b) lcm = a; else lcm = b;
此后,while循环运行。在这个循环中,如果 LCM 既能被 a 也能被 b 整除,那么它就是这两个数的最小公倍数,并显示出来。如果不是,则递增 LCM 直到满足此条件。
解释这一点的代码片段如下:
while(1) {
if( lcm%a==0 && lcm%b==0 ) {
cout<<"The LCM of "<<a<<" and "<<b<<" is "<<lcm;
break;
}
lcm++;
}另一种查找两个数的最小公倍数的方法是使用最小公倍数和最大公约数公式。这个公式规定两个数的乘积等于它们的最小公倍数和最大公约数的乘积。
a * b = GCD * LCM
使用该公式查找两个数的最小公倍数的程序如下所示:
示例
#include<iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
int main() {
int a = 7, b = 5;
cout<<"LCM of "<< a <<" and "<< b <<" is "<< (a*b)/gcd(a, b);
return 0;
}输出
LCM of 7 and 5 is 35
在上述程序中,最小公倍数是使用公式计算的。首先,使用 gcd() 获取 a 和 b 的最大公约数。这是一个递归函数。它有两个参数,即 a 和 b。如果 b 大于 0,则将 a 返回到 main() 函数。否则,gcd() 函数将使用值 b 和 a%b 递归调用自身。
这通过以下代码片段演示。
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}获得最大公约数后,使用公式计算最小公倍数。然后显示出来。这在以下代码片段中显示。
cout<<"LCM of "<< a <<" and "<< b <<" is "<< (a*b)/gcd(a, b);
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP