用C ++程序查找LCM
两个数字的最小公倍数(LCM)是两个数字的倍数的最小数。
例如:假设我们有以下两个数字:15和9。
15 = 5 * 39 = 3 * 3
因此,LCM 15和9为45。
查找两个数字的LCM的程序如下-
示例
#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并显示出来。如果不是,则LCM递增直到满足此条件。
解释这一点的代码片段如下-
while(1) {if( lcm%a==0 && lcm%b==0 ) {
cout<<"The LCM of "<<a<<" and "<<b<<" is "<<lcm;
break;
}
lcm++;
}
查找两个数字的LCM的另一种方法是使用LCM和GCD公式。此公式指定两个数字的乘积等于其LCM和GCD的乘积。
a * b = GCD * LCM
给出了使用公式查找两个数字的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
在上面的程序中,使用公式找到LCM。首先,使用来获得a和b的GCD gcd()
。它是一个递归函数。它具有两个参数,即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);
}
获得GCD后,使用公式计算LCM。然后显示。在下面的代码片段中显示了这一点。
cout<<"LCM of "<< a <<" and "<< b <<" is "<< (a*b)/gcd(a, b);
以上是 用C ++程序查找LCM 的全部内容, 来源链接: utcz.com/z/331289.html