求若干數的最大公約數可以利用將其轉化為求兩個數的最大公約數,將求得的最大公約數再與第三個數一起求最大公約數,直到最後乙個數結束。
下面介紹求倆個數的最大公約數的方法,具體求多個數的的程式我沒有具體去寫,思路就是這樣。
求最大公約數演算法:
(1)輾轉相除法
兩整數a和b:
① a%b得餘數c
② 若c=0,則b即為兩數的最大公約數,結束
③ 若c≠0,則a=b,b=c,再回去執行①
(2)相減法
兩整數a和b:
① 若a>b,則a=a-b
② 若a③ 若a=b,則a(或b)即為兩數的最大公約數,結束
④ 若a≠b,則再回去執行①
(3)窮舉法:
① i= a b中的小數
② 若a,b能同時被i整除,則i即為最大公約數,結束
③ i--,再回去執行②
具體**如下:
(
1)輾轉相除法
int getcommonisor(int num1,int num2)
r=num1%num2;
while(r!=0)
return num2;}
(2)相減法
int getcommonisor(int num1,int num2)
else
}return num2;
}(3)窮舉法:
int getcommonisor(int num1,int num2)
return min;}
求最大公約數
最新用了三種演算法實現了求最大公約數的演算法,用的c 寫的,最大公約數也是我們生活中常見的問題 1 窮舉法 主要 如下 if a b for i 1 i a i 演算法分析 窮舉法先將a,b兩值比較大小並且互換,再進行與各種數的整除,如果這個數能同時被a,b整除,那麼這個數就為最大公約數,這種演算法...
求最大公約數
暴力列舉法很簡單,從較小整數的一班開始,試圖找到乙個合適的整數i,檢查這個整數i是否被a和b同時整除 暴力列舉法求最大公約數 param a param b return public static int getgreatestcommondivisor v1 int a,int b for in...
求最大公約數
1.輾轉相除法 a.具體思路 兩個正整數a和b a b 它們的最大公約數等於a除以b的餘數c和b之間的最大公約數。比如10和25,25除以10商2餘5,那麼10和25的最大公約數,等同於10和5的最大公約數。有點類似動態規劃的思想,逐步減小問題規模,最後求到問題的解。int test1 int a,...