輾轉相除法原理:
假設有兩個數x和y,存在乙個最大公約數z=(x,y),即x和y都有公因數z,
那麼x一定能被z整除,y也一定能被z整除,所以x和y的線性組合mx±ny也一定能被z整除。(m和n可取任意整數)
對於輾轉相除法來說,思路就是:若x>y,設x/y=n餘c,則x能表示成x=ny+c的形式,將ny移到左邊就是x-ny=c,由於一般形式的mx±ny能被z整除,所以等號左邊的x-ny(作為mx±ny的乙個特例)就能被z整除,即x除y的餘數c也能被z整除。
(以上為複製)
若不能整除,則將min作為被除數,餘數c作為除數,繼續迴圈這個過程,直到餘數c=0為止。為什麼這樣做可以得到結果?因為在這個過程中,被除數和除數最大公約數始終沒有變。分析如下:
設商為f,假設第十一步得到了結果,迴圈過程:
x/y=f1…c1
y/c1=f2…c2
c1/c2=f3…c3
……c8/c9=f10…c10
c9/c10=f11…0
如此,c10即為最大公約數。
那麼據第一段所述,可得:c9%c10=0,c8%c10=0,c7%c10=0……c1%c10=0,據此可說明被除數和除數最大公約數始終沒有變。於是這樣就得到了最大公約數了。
備註:兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數
最小公倍數等於兩個數的乘積除以最小公約數
b能被a整除<=>b/a=c…0 (c為整數);
b能整除a<=>a/b=c』…0(c為整數).
//求兩數的最大公約數
#includeint main()
while(c!=0);
printf("%d",x)
return 0;
}
輾轉相除法的原理
輾轉相除法又叫歐幾里得輾轉相除法,最早出現在西元前300年古希臘著名數學家歐幾里得的 幾何原本 第vii卷,命題i和ii 中。而在中國則可以追溯至東漢出現的 九章算術 而在現代數學中,這應該是屬於數論的部分的。要想解釋輾轉相除法的原理,需要先知道以下兩點 一 乙個一般定理 如果a是任一整數而b是任一...
輾轉相除法 歐幾里德演算法 原理
原理 假設有兩個數x和y,存在乙個最大公約數z x,y 即x和y都有公因數z,那麼x一定能被z整除,y也一定能被z整除,所以x和y的線性組合mx ny也一定能被z整除。m和n可取任意整數 對於輾轉相除法來說,思路就是 若x y,設x y n餘c,則x能表示成x ny c的形式,將ny移到左邊就是x ...
約分 輾轉相除法
include using namespace std int main int temp1 int temp2 cin temp1 temp2 int a temp1 int b temp2 while b 0 int temp a b a b b temp cout 輾轉相除法 輾轉相除法是求兩...