目錄
1 問題描述
何為最小公倍數?能同時被數字m和數字n整除的最小整數。例如,24和60的最小公倍數等於120。下面請編寫相關函數實現求取數字m和n的最小公倍數。
2 解決方案
關於本文求解最小公倍數的思想,來自於《算法設計與分析基礎》第三版上一段講解,具體如下:
具體代碼如下:
package com.liuzhen.chapter6; public class LeastCommonMultiple { //使用歐幾里得算法求解數m和數n最大公約數 public int getGcd(int m,int n){ while(n > 0){ int temp = m % n; m = n; n = temp; } return m; } //求解數m和n和最小公倍數 public int getLcm(int m,int n){ int gcd = getGcd(m,n); int result = m*n / gcd; return result; } public static void main(String[] args){ LeastCommonMultiple test = new LeastCommonMultiple(); System.out.println("60和12的最大公約數:"+test.getGcd(60, 12)); System.out.println("60和12的最小公倍數:"+test.getLcm(60, 12)); } }
運行結果:
60和12的最大公約數:12
60和12的最小公倍數:60