两个数字的LCM(最小公倍数)是可以除以两个数字的最小数字。
例如,15和20的LCM为60,5和7的LCM为35。
一个简单的解决方案是找到两个数字的所有素因子,然后找到两个数字中存在的所有因子的并集。最后,返回并集元素的乘积。
一个有效的解决方案基于以下公式来计算两个数字“ a”和“ b”的LCM。
a x b = LCM(a, b) * GCD (a, b)
LCM(a, b) = (a x b) / GCD(a, b)
我们已经讨论了找到两个数字的GCD的函数。使用GCD,我们可以找到LCM。
下面是上述想法的实现:
C++
// C++ program to find LCM of two numbers
#include
using namespace std;
// Recursive function to return gcd of a and b
long long gcd(long long int a, long long int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
// Function to return LCM of two numbers
long long lcm(int a, int b)
{
return (a / gcd(a, b)) * b;
}
// Driver program to test above function
int main()
{
int a = 15, b = 20;
cout <<"LCM of " << a << " and "
<< b << " is " << lcm(a, b);
return 0;
}
C
// C program to find LCM of two numbers
#include
// Recursive function to return gcd of a and b
int gcd(int a, int b)
{
if (a == 0)
return b;
return gcd(b % a, a);
}
// Function to return LCM of two numbers
int lcm(int a, int b)
{
return (a / gcd(a, b)) * b;
}
// Driver program to test above function
int main()
{
int a = 15, b = 20;
printf("LCM of %d and %d is %d ", a, b, lcm(a, b));
return 0;
}
Java
// Java program to find LCM of two numbers.
class Test
{
// Recursive method to return gcd of a and b
static int gcd(int a, int b)
{
if (a == 0)
return b;
return gcd(b % a, a);
}
// method to return LCM of two numbers
static int lcm(int a, int b)
{
return (a / gcd(a, b)) * b;
}
// Driver method
public static void main(String[] args)
{
int a = 15, b = 20;
System.out.println("LCM of " + a +
" and " + b +
" is " + lcm(a, b));
}
}
Python3
# Python program to find LCM of two numbers
# Recursive function to return gcd of a and b
def gcd(a,b):
if a == 0:
return b
return gcd(b % a, a)
# Function to return LCM of two numbers
def lcm(a,b):
return (a / gcd(a,b))* b
# Driver program to test above function
a = 15
b = 20
print('LCM of', a, 'and', b, 'is', lcm(a, b))
# This code is contributed by Danish Raza
C#
// C# program to find LCM
// of two numbers.
using System;
class GFG {
// Recursive method to
// return gcd of a and b
static int gcd(int a, int b)
{
if (a == 0)
return b;
return gcd(b % a, a);
}
// method to return
// LCM of two numbers
static int lcm(int a, int b)
{
return (a / gcd(a, b)) * b;
}
// Driver method
public static void Main()
{
int a = 15, b = 20;
Console.WriteLine("LCM of " + a +
" and " + b + " is " + lcm(a, b));
}
}
// This code is contributed by anuj_67.
PHP
Javascript
输出
LCM of 15 and 20 is 60
https://youtu.be/anSfYgbo694