最小公約數求法

2021-06-22 20:59:18 字數 2583 閱讀 1498

最大公約數 - 求法

質因數分解法

質因數分解法:把每個數分別分解質因數,再把各數中的全部公有質因數提取出來連乘,所得的積就是這幾個數的最大公約數。

例如:求24和60的最大公約數,先分解質因數,得24=2×2×2×3,60=2×2×3×5,24與60的全部公有的質因數是2、2、3,它們的積是2×2×3=12,所以,(24、60)=12。

把幾個數先分別分解質因數,再把各數中的全部公有的質因數和獨有的質因數提取出來連乘,所得的積就是這幾個數的最小公 數。

例如:求6和15的最小公倍數。先分解質因數,得6=2×3,15=3×5,6和15的全部公有的質因數是3,6獨有質因數是2,15獨有的質因數是5,2×3×5=30,30裡面包含6的全部質因數2和3,還包含了15的全部質因數3和5,且30是6和15的公倍數中最小的乙個,所以[6,15]=30。

短除法

短除法:短除法求最大公約數,先用這幾個數的公約數連續去除,一直除到所有的商互質為止,然後把所有的除數連乘起來,所得的積就是這幾個數的最大公約數。

短除法求最小公倍數,先用這幾個數的公約數去除每個數,再用部分數的公約數去除,並把不能整除的數移下來,一直除到所有的商中每兩個數都是互質的為止,然後把所有的除數和商連乘起來,所得的積就是這幾個數的最小公倍數,例如,求12、15、18的最小公倍數。

短除法的本質就是質因數分解法,只是將質因數分解用短除符號來進行。

短除符號就是除號倒過來。短除就是在除法中寫除數的地方寫兩個數共有的質因數,然後落下兩個數被公有質因數整除的商,之後再除,以此類推,直到結果互質為止(兩個數互質)。

而在用短除計算多個數時,對其中任意兩個數存在的因數都要算出,其它沒有這個因數的數則原樣落下。直到剩下每兩個都是互質關係。

求最大公因數便乘一邊,求最小公倍數便乘一圈。

無論是短除法,還是分解質因數法,在質因數較大時,都會覺得困難。這時就需要用新的方法。

輾轉相除法

輾轉相除法:輾轉相除法是求兩個自然數的最大公約數的一種方法,也叫歐幾里德演算法。

例如,求(319,377):

∵ 377÷319=1(餘58)

∴(377,319)=(319,58);

∵ 319÷58=5(餘29),

∴ (319,58)=(58,29);

∵ 58÷29=2(餘0),

∴ (58,29)= 29;

∴ (319,377)=29.

用輾轉相除法求幾個數的最大公約數,可以先求出其中任意兩個數的最大公約數,再求這個最大公約數與第三個數的最大公約數,依次求下去,直到最後乙個數為止。最後所得的那個最大公約數,就是所有這些數的最大公約數。

更相減損法

更相減損法:也叫更相減損術,是出自《九章算術》的一種求最大公約數的演算法,它原本是為約分而設計的,但它適用於任何需要求最大公約數的場合。

《九章算術》是中國古代的數學專著,其中的「更相減損術」可以用來求兩個數的最大公約數,即「可半者半之,不可半者,副置分母、子之數,以少減多,更相減損,求其等也。以等數約之。」

翻譯成現代語言如下:

第一步:任意給定兩個正整數;判斷它們是否都是偶數。若是,則用2約簡;若不是則執行第二步。

第二步:以較大的數減較小的數,接著把所得的差與較小的數比較,並以大數減小數。繼續這個操作,直到所得的減數和差相等為止。

則第一步中約掉的若干個2與第二步中等數的乘積就是所求的最大公約數。

其中所說的「等數」,就是最大公約數。求「等數」的辦法是「更相減損」法。所以更相減損法也叫等值演算法。

例1、用更相減損術求98與63的最大公約數。

解:由於63不是偶數,把98和63以大數減小數,並輾轉相減:

98-63=35

63-35=28

35-28=7

28-7=21

21-7=14

14-7=7

所以,98和63的最大公約數等於7。

這個過程可以簡單的寫為:

(98,63)=(35,63)=(35,28)=(7,28)=(7,21)=(7,14)=(7,7)=7.

例2、用更相減損術求260和104的最大公約數。

解:由於260和104均為偶數,首先用2約簡得到130和52,再用2約簡得到65和26。

此時65是奇數而26不是奇數,故把65和26輾轉相減:

65-26=39

39-26=13

26-13=13

所以,260與104的最大公約數等於13乘以第一步中約掉的兩個2,即13*2*2=52。

這個過程可以簡單地寫為:

(260,104)=(65,26)=(39,26)=(13,26)=(13,13)=13.

比較輾轉相除法與更相減損術的區別:

(1)都是求最大公因數的方法,計算上輾轉相除法以除法為主,更相減損術以減法為主,計算次數上輾轉相除法計算次數相對較少,特別當兩個數字大小區別較大時計算次數的區別較明顯。

(2)從結果體現形式來看,輾轉相除法體現結果是以相除餘數為0則得到,而更相減損術則以減數與差相等而得到

MSSQL 最小公約數

摘要 乙個朋友在展bom的時候有這種需求,兩列字段 數值 a b a 用量,b 底數,組成用量 用量 底數。a b,若能被整除,顯示整除的結果,若不能整除顯示分數形式a b 分數形式要是約分後的格式 3 6 1 3。我的思路 1.sql取餘推斷能否被整除 2.撰寫兩個整形數值的最大公約數,然後分子與...

最大公約數最小公倍數,多個數求法和逆求法

多個數求法,求n個數的最大公約數和最小公倍數。求最大公約數函式 public static intdivisor int a,int b while a b 0 return b 求最小公倍數函式 public static intmultiple int a,int b public static...

最大公約數與最小公倍數的求法 Python

最大公約數與最小公倍數的求法 1.對輸入的兩個數判斷大小,保證 a b 2.進行迴圈,直到b 0 temp b b a b a temp 另一種表達方式為 a,b b,a b 3.最後返回b就是最大公約數 最小公倍數就是兩者的乘積除以最大公倍數def func num1,num2 求最大公約數和最小...