最大公約數 歐幾里得算法 最小公倍數

版權聲明:轉載請註明作者和鏈接 https://blog.csdn.net/Hola_ya/article/details/81349831

最大公約數

Gcd(m, n) = Gcd(n, m%n)
歐幾里德算法
歐幾里德算法又稱輾轉相除法,用於計算兩個整數a,b的最大公約數。其計算原理依賴於下面的定理:
定理:gcd(a,b) = gcd(b,a % b)
證明:a可以表示成a = kb + r,則r = a % b
假設d是a,b的一個公約數,則有
d|a, d|b,而r = a - kb,因此d|r
因此d是(b,a % b)的公約數

假設d 是(b,a % b)的公約數,則
d | b , d |r ,但是a = kb +r
因此d也是(a,b)的公約數

因此(a,b)和(b,a % b)的公約數是一樣的,其最大公約數也必然相等,得證

int Gcd(int m, int n)
{
    if(n == 0)
        return m;
    else
        return Gcd(n, m%n);
}
int Gcd(int m, int n)
{
    int c;
    while(m != 0)
    {
        c = m;
        m = m % n;
        n = c;
    }
    return n;
}

最小公倍數

最小公倍數 = 兩整數的乘積 ÷ 最大公約數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章