學習目標:
用Java計算簡單數學問題例題:
需求:輸入2個正整數,求這2個數的最大公約數和最小公倍數
代碼如下:
public static void main(String[] args) {
// 輸入2個正整數,求最大公約數和最小公倍數
// 最大公約數, 1> 第一步控制台輸入
Scanner sc = new Scanner(System.in);
System.out.println("請輸入第一個正整數:");
int n = sc.nextInt();
System.out.println("請輸入第二個正整數:");
int m = sc.nextInt();
// 2> 最大公約數小於等於最小的那個,取m和n中小的那個數
if(n > 0 && m >0) {
int min = (n < m) ? n : m;
for (int i = min; i >= 1; i--) {
if (n % i == 0 && m % i == 0) {
System.out.println("最大公約數為:" + i);
break;
}
}
// 求最小公倍數,最小公倍數一定大於等於最大的那個數
int max = (n > m) ? n : m;
// 定義一個中間變量,用於存儲每次max加倍后的值
int num = max;
// 最小公倍數肯定為max的倍數,最大為:(n*m),最小為:max(n,m)
// 所以定義i為max的倍數,倍數i一定小於等於n和m中小的那個,因為最小公倍數最大為2個數乘積
for (int i = 1; i < n; i++) {
if (num % m == 0 && num % n == 0) {
System.out.println("最小公倍數為:" + num);
break;
} else {
num = max * i;
}
}
} else {
System.out.println("輸入數據不合法,請輸入正整數!");
}
}
運行效果:
請輸入第一個正整數:
6
請輸入第二個正整數:
9
最大公約數為:3
最小公倍數為:18
Process finished with exit code 0
總結:
以上就是最大公約數和最小公倍數的求法了。