歐幾里得算法原理—Java實現

歐幾里得算法:

又名輾轉相除法,歐幾里德算法是用來求兩個非負整數最大公約數的算法。

其計算原理依賴的定理:兩個非負整數的最大公約數等於其中較小的那個數和兩數相除餘數的最大公約數。

其具體計算方法爲:用兩數中的較大數p除以較小數q,再用出現的餘數r1去除除數q,再用出現的餘數r2去除餘數r1,如此反覆,直到最後餘數是0爲止,最後的除數就是這兩個數的最大公約數。

舉例說明:利用歐幾里得算法求兩非負整數1071462的最大公約數:
第一步:1071 / 462 = 2······147
第二步:462 / 147 = 3······21
第三步:147 / 21 = 7······0

所以,21即爲兩數的最大公約數。

Java代碼實現:

public static int gcd(int p,int q) {
		if(q==0) 
			return p;
		int r=p%q;
		return gcd(q,r);
	}

 

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