//(6)題目:輸入兩個正整數m和n,求其最大公因數和最小公倍數。 (必須用迴圈完成)

package hey;

import java.util.Scanner;

public class math {

public static void main(String[] args) {
// TODO Auto-generated method stub

//(6)題目:輸入兩個正整數m和n,求其最大公因數和最小公倍數。 (必須用迴圈完成)
//   1.程序分析:利用輾轉相除法。

  Scanner scanner=new Scanner(System.in);
  System.out.println("請輸入兩整數,用空格分開");
  int m=scanner.nextInt();
  int n=scanner.nextInt();
  scanner.close();
 
  int m1=m,n1=n;                //把輸入兩整數做備份
  int temp;                     //交換時使用
 
//算法的便是把m除以n,再計算所得餘數。把n給m,餘數給n,持續計算下去到m%n==0時n即為最大公因數
 
 
  if(n==0 || m==0) {
  System.out.println("無最大公因數");
  System.out.println("無最小公倍數");
  }
  else {
//算法的便是把m除以n,餘數不為0。把n給m,餘數給n,持續計算下去到m%n==0時跳出,n即為最大公因數  
  while(m%n!=0)               
  {
   temp=m%n;m=n;n=temp;//把餘數給temp;把n給m,餘數給n。
  }
  System.out.println("最大公因數為:"+n);
  System.out.println("最小公倍數為:"+(m1*n1/n));  //兩數相乘除於最大公因數即為最小公倍數。
  }
   
 



}

留言

這個網誌中的熱門文章

JAVE題目:產生10個亂數值,範圍為10-100之間,再利用「選擇排序法」進行由小到大的排序。並將排序後的結果列出來。

資料庫32範例:小戴修正。

StringBuilder跟StringBuffer的方法