1. 程式人生 > >歐幾裏得算法和擴展歐幾裏得算法

歐幾裏得算法和擴展歐幾裏得算法

表示 code pla splay log -a 概述 歐幾裏德算法 一個

概述

歐幾裏德算法又稱輾轉相除法,用於計算兩個整數\(a\),\(b\)最大公約數。其計算原理依賴於下面的定理:

\(gcd\)函數就是用來求\((a,b)\)最大公約數的。

\(gcd\)函數的基本性質:

\[gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|)\]

原理

證明:\(a?\)可以表示成\(a = kb + r?\),則\(r = a (mod) b?\)

假設\(d\)\(a\),\(b\)的一個公約數,則有

\(d|a\), \(d|b\),而\(r = a - kb\),因此\(d|r\)

因此\(d\)\((b,a(mod)b)\)

的公約數

假設\(d\)\((b,a(mod)b)\)的公約數,則

\(d | b\) , \(d |r\) ,但是\(a = kb +r\)

因此\(d\)也是\((a,b)\)的公約數

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

歐幾裏得算法和擴展歐幾裏得算法