標籤:
題目:輸入兩個正整數number1和number2,求其最大公約數和最小公倍數。
演算法:較大數和較小數取餘,較小數除餘數,一直到餘數為0時,為最大公約數(輾轉相除法);最大公倍數numbe1*number2/(最大公約數),下面直接上代碼:
import java.util.Scanner;public class Max_Min { static int n1; public static void main(String[] args) { Max_Min m = new Max_Min(); /* * 此處輸入兩個數值,求出最小公倍數和最大公約數 */ Scanner s = new Scanner(System.in); System.out.print("請輸入一個正整數:"); int number1 = Integer.parseInt(s.nextLine()); System.out.print("請再輸入一個正整數:"); int number2 = Integer.parseInt(s.nextLine()); if(number1>number2){ //這裡的if判斷是為了,篩選出較大的數,功能函數裡面取餘數使用 m.function(number1,number2); } else{ m.function(number2, number1); } m.function2(number1, number2,n1); //此方法求最小公倍數 } public void function(int number1, int number2){ if(number1%number2 == 0){ System.out.println("最大公約數為:"+number2); getInt(number2); //傳遞最大公約數的值 }else{ function(number2, number1%number2); } } public void getInt(int number){ //得到最大公約數 this.n1 = number; } public void function2(int number1, int number2, int number) { //輸出最大公倍數 System.out.println("最大公倍數是:"+number1*number2/number); }}
Java程式設計之最大公約數和最小公倍數