最大公約數 公因子 多種java實現方法

2021-08-04 04:42:54 字數 1509 閱讀 9068

最大公因數,也稱最大公約數、最大公因子,幾個整數,公有的約數,叫做這幾個數的公約數;其中最大的乙個,叫做這幾個數的最大公約數。例如:12、16的公約數有1、2、4,其中最大的乙個是4,4是12與16的最大公約數.

方法一:

輾轉相除法: 如求(9, 15)的 最大公因子

9 / 15 = 0….9

15 / 9 = 1….6

9 / 6 = 1……3

6 / 3 = 2……0

像這樣輾轉相除, 直到出現餘數為零停止, 那麼最後的除數就是最大公因子, 即最大公因子等於 3

//輾轉相除法

public

static

intmethod_one(int a, int b)

方法二:更相減損術:如求(9, 15)的 最大公因子

15 - 9 = 6

9 - 6 = 3

6 - 3 = 3

像這樣一直用最大的數減去最小的數,直到被減數和差相等,那麼減數就是最大公因子, 即最大公因子等於 3

//更相減損法

public

static

intmethod_two(int a, int b)

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

,所得的積就是這幾個數的最大公約數。

如求(12, 24)的最大公因子

12   24 | 2

6     12 | 2

3     6  |  3

1      2

最後 1 和 2 都是質數, 最大公因子就等於 2*2*3 = 12

//短除法

static

int max = 1;

public

static

intmethod_three(int a, int b)

}return max;

}

方法四:從(a, b)中的最小值 (假設 這裡為a) 開始從後往前依次遍歷, 查詢都能被b和a都整除的數,這個數就是 最大公因子.

如(9, 15)的最大公因子

9 , 8 , 7, 6, 5, 4, 3當迴圈到3的時候發現 9%3 等於零, 15%3等於零,那麼 3 就是最大公因子

//普通方法

public

static

intmethod_four(int a, int b)

}return

1; }

主函式測試結果:

最大公約數

1.執行最大公約數的常用演算法,並新增異常處理模組 如輸入非法等 在基礎程式的基礎上,可以考慮手動輸入所有數字或者利用隨機數產生數字,分別加入異常處理模組。注 隨機數的產生方法 srand 的作用是提供乙個種子。然後呼叫rand 其格式為int rand void 它會根據提供給srand 的種子值...

最大公約數

最大公因數 greatest common divisor 也稱最大公約數 最大公因子,指兩個或多個整數共有約數中最大的乙個。a,b的最大公約數記為 a,b 同樣的,a,b,c的最大公約數記為 a,b,c 多個整數的最大公約數也有同樣的記號。求最大公約數有多種方法,常見的有質因數分解法 短除法 輾轉...

最大公約數

求兩數的最大公約數 簡單嗎?簡單!用多種方法求,可以嗎?emmmmm.應該可以吧?相信絕大多數人都知道求最大公約數的如下 所示的這種方法 include includeint commondivisor int x,int y min return min int main 先判斷兩個數的大小,將較...