求最大公因數和最小公倍數(C++實現)


求兩個正整數之最大公因子的算法(輾轉相除法)

最大公約數是指能同時整除它們的最大正整數

基本原理:兩個數的最大公約數等於它們中較小的數和兩數之差的最大公約數。

就如有 a = 122, b =  54,a與b 的最大公約數也是54 與(122 - 54)的最大公約數;

即有:

122    54

68     54

54     14

40     14

......

2       0

 代碼有:

int GreatestCommonDivisor(int a, int b)

{

    int t;

    if (a < b)

    {

        temp = a;

        a = b;

        b = t;

    }    

    while (b != 0)

    {

        t = a % b;

        a = b;

        b = t;

    }

    return a;

}

 

求最小公倍數是可依靠最大公因數

設c是a與b的最大公因數  

int LeastCommonMultiple (int a, int b)

{

    int t = a * b /c;

    return t;

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM