題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。
程序分析:利用輾除法。歐幾里得算法
function gcd(a, b) while b ≠ 0 t ← b b ← a mod b a ← t return a
public class 第六題計算最小公倍數和最大公約數 { public static void main(String[] args) { System.out.println("請輸入兩個正整數:"); Scanner in = new Scanner(System.in); int m = in.nextInt(); int n = in.nextInt(); if(n <= 0 || m <= 0) { System.out.println("請輸入正整數"); } System.out.println("最大公約數為:" + gcd(m,n)); System.out.println("最小公倍數為:" + lcm(m,n)); in.close(); } //計算最大公約數
private static int gcd(int a, int b) { int temp = 0; while(b != 0) { temp = b; b = a % b; a = temp; } return a; } //計算最小公倍數
private static int lcm(int a, int b) { return a * b / gcd(a, b); } }