📜  最小公分母(LCD)

📅  最后修改于: 2021-04-28 14:26:35             🧑  作者: Mango

最小公分母或最小公分母是一组分数的分母的最小公倍数。

共同分母:两个或多个分数的分母相同时。
最小公分母是所有公分母中的最小公分母。
为什么需要LCD ?
它简化了加,减和比较分数。
可以通过乘以分母来简单地评估公共分母。在这种情况下,3 * 6 = 18

但这并不总是最小公分母,在这种情况下LCD = 6而不是18。LCD实际上是分母的LCM。
例子 :

LCD for fractions 5/12 and 7/15 is 60.
We can write both fractions as 25/60 and
28/60 so that they can be added and 
subtracted easily.

LCD for fractions 1/3 and 4/7 is 21.

示例问题:给定两个分数,使用最小公称数求和。
例子

Input :  1/6  +  7/15    
Output : 19/30
         Explanation : LCM of 6 and 15 is 30. 
         So, 5/30  +  14/30 = 19/30 
Input :  1/3  +  1/6
Output : 3/6
         Explanation : LCM of 3 and 6 is 6. 
         So, 2/6  +  1/6 = 3/6

注意*通过异常取消,可以进一步简化这些答案。

C++
// C++ Program to determine
// LCD of two fractions and
// Perform addition on fractions
#include 
using namespace std;
 
// function to calculate gcd
// or hcf of two numbers.
int gcd(int a, int b)
{
    if (a == 0)
        return b;
    return gcd(b % a, a);
}
 
// function to calculate
// lcm of two numbers.
int lcm(int a, int b)
{
    return (a * b) / gcd(a, b);
}
 
void printSum(int num1, int den1,
              int num2, int den2)
{
    // least common multiple
    // of denominators LCD
    // of 6 and 15 is 30.
    int lcd = lcm(den1, den2);
 
    // Computing the numerators for LCD:
    // Writing 1/6 as 5/30 and 7/15 as
    // 14/30
    num1 *= (lcd / den1);
    num2 *= (lcd / den2);
 
    // Our sum is going to be res_num/lcd
    int res_num = num1 + num2;
    cout << res_num << "/" << lcd;
}
 
// Driver Code
int main()
{
    // First fraction is 1/6
    int num1 = 1, den1 = 6;
 
    // Second fraction is 7/15
    int num2 = 7, den2 = 15;
 
    printSum(num1, den1, num2, den2);
    return 0;
}


Java
// Java Program to determine LCD of two
// fractions and Perform addition on
// fractions
public class GFG {
     
    // function to calculate gcd or
    // hcf of two numbers.
    static int gcd(int a, int b)
    {
        if (a == 0)
            return b;
             
        return gcd(b % a, a);
    }
     
    // function to calculate lcm of
    // two numbers.
    static int lcm(int a, int b)
    {
        return (a * b) / gcd(a, b);
    }
     
    static void printSum(int num1, int den1,
                         int num2, int den2)
    {
         
        // least common multiple of
        // denominators LCD of 6 and 15
        // is 30.
        int lcd = lcm(den1, den2);
     
        // Computing the numerators for LCD:
        // Writing 1/6 as 5/30 and 7/15 as
        // 14/30
        num1 *= (lcd / den1);
        num2 *= (lcd / den2);
     
        // Our sum is going to be res_num/lcd
        int res_num = num1 + num2;
         
        System.out.print( res_num + "/" + lcd);
    }
         
    // Driver code
    public static void main(String args[])
    {
         
        // First fraction is 1/6
        int num1 = 1, den1 = 6;
 
        // Second fraction is 7/15
        int num2 = 7, den2 = 15;
 
        printSum(num1, den1, num2, den2);
    }
}
 
// This code is contributed by Sam007.


Python3
# python Program to determine
# LCD of two fractions and
# Perform addition on fractions
 
# function to calculate gcd
# or hcf of two numbers.
def gcd(a, b):
     
    if (a == 0):
        return b
    return gcd(b % a, a)
 
 
# function to calculate
# lcm of two numbers.
def lcm(a, b):
     
    return (a * b) / gcd(a, b)
 
 
def printSum(num1, den1,
                  num2, den2):
                 
    # least common multiple
    # of denominators LCD
    # of 6 and 15 is 30.
    lcd = lcm(den1, den2);
     
    # Computing the numerators
    # for LCD: Writing 1/6 as
    # 5/30 and 7/15 as 14/30
    num1 *= (lcd / den1)
    num2 *= (lcd / den2)
 
    # Our sum is going to be
    # res_num/lcd
    res_num = num1 + num2;
    print( int(res_num) , "/" ,
                       int(lcd))
 
# Driver Code
# First fraction is 1/6
num1 = 1
den1 = 6
 
# Second fraction is 7/15
num2 = 7
den2 = 15
printSum(num1, den1, num2, den2);
 
# This code is contributed
# by Sam007


C#
// C# Program to determine LCD of two
// fractions and Perform addition on
// fractions
using System;
 
class GFG {
 
    // function to calculate gcd or
    // hcf of two numbers.
    static int gcd(int a, int b)
    {
        if (a == 0)
            return b;
             
        return gcd(b % a, a);
    }
     
    // function to calculate lcm of
    // two numbers.
    static int lcm(int a, int b)
    {
        return (a * b) / gcd(a, b);
    }
     
    static void printSum(int num1, int den1,
                         int num2, int den2)
    {
         
        // least common multiple of
        // denominators LCD of 6 and 15
        // is 30.
        int lcd = lcm(den1, den2);
     
        // Computing the numerators for LCD:
        // Writing 1/6 as 5/30 and 7/15 as
        // 14/30
        num1 *= (lcd / den1);
        num2 *= (lcd / den2);
     
        // Our sum is going to be res_num/lcd
        int res_num = num1 + num2;
         
        Console.Write( res_num + "/" + lcd);
    }
         
    // Driver code
    public static void Main ()
    {
         
        // First fraction is 1/6
        int num1 = 1, den1 = 6;
 
        // Second fraction is 7/15
        int num2 = 7, den2 = 15;
 
        printSum(num1, den1, num2, den2);
    }
}
 
// This code is contributed by Sam007.


PHP


Javascript


输出 :

19/30