java遞歸實現最大公約數和最小公倍數

第一個最大公約數使用的2300年前被髮明的歐幾里得算法求得,大致原理爲:

如果有兩個非負整數p、q,若q==0,則最大公約數爲p;否則,p和q的最大公約數就是p除以q所得的餘數和q的最大公約數。


第二個最小公倍數更簡單

如果有兩個非負整數p、q,若q==0,則最大公約數爲p;否則,p和q的最大公約數就是p除以q所得的餘數和q的最大公約數。


關鍵代碼如下:

//最大公約數(Greatest Common Divisor)
public int gcd(int p,int q){
      if(q == 0)    return p;
      return gcd(q, p % q);
 }

//最小公倍數(Least Common Multiple) 
public int lcm(int p,int q){
      int pq = p * q;
      return pq / gcd(p,q);
 }


發佈了70 篇原創文章 · 獲贊 218 · 訪問量 72萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章