最大公約數(最大公因數):指某幾個整數共有約數中最大的一個。
求兩個整數最大公約數主要的方法:
Java程式代碼:
以下使用輾轉相除法實現。
1 private int GCD(int a, int b) { 2 if(b==0) return a; 3 return a % b == 0 ? b : GCD(b, a % b); 4 }
最小公倍數,是數論中的一個概念。若有一個數X,可以被另外兩個數A、B整除,且X大於(或等於)A和B,則X為A和B的公倍數。A和B的公倍數有無限個,而所有的公倍數中,最小的公倍數就叫做最小公倍數。
Java程式代碼:
以下使用輾轉相除法求得最大公因數,之后再求最小公倍數。
1 private int GCD(int a, int b) { 2 return a % b == 0 ? b : GCD(b, a % b); 3 } 4 private int LCM(int a, int b) { 5 return a * b / GCD(a, b); 6 }
附:輾轉相除法基於如下原理,兩個整數的最大公約數等於其中較小的數和兩數的差的最大公約數。
參考資料:
1.最大公約數.https://zh.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E5%85%AC%E5%9B%A0%E6%95%B8
2.輾轉相除法.https://zh.wikipedia.org/wiki/%E8%BC%BE%E8%BD%89%E7%9B%B8%E9%99%A4%E6%B3%95
3.最小公倍數.https://zh.wikipedia.org/wiki/%E6%9C%80%E5%B0%8F%E5%85%AC%E5%80%8D%E6%95%B8
