java基礎最大公約數最小公倍數

Posted merrysr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基礎最大公約數最小公倍數相关的知识,希望对你有一定的参考价值。

public static void main(String[] args) {
   maxGy(); //求兩個數的最大公約數和最小公倍數
 }
 
/*
  * 最大公約數、最小公倍數
  */

 public static void maxGy() {
    Scanner sc1 = new Scanner(System.in);
    System.out.println("請輸入一個正整數:");
    int n = sc1.nextInt();           // 輸入的正整數
 
    Scanner sc2 = new Scanner(System.in);
    System.out.println("請輸入一個正整數:"); 
    int m = sc2.nextInt();          // 輸入的正整數
    
    int min = m > n ? m : n;          // 取出兩個數中較小的數
    int maxGy = 1;              // 定義最大公約數的初始值為1。黨兩個數互質時最大公約是1
    for (int i = 2; i <= min; i++) {         // 1不爲質數,所以從2開始循環,定義i表示min的質因數
     if (n % i == 0 && m % i == 0) {        // 如果i能被兩個數同時約分,則是它們的公約數,但不一定是最大的
        maxGy = i;              // 循環找到最大的公約數
     }
  }
  System.out.print(m + "和" + n + "的最大公約數為:" + maxGy + " ;");
  System.out.print(" " + m + "和" + n + "的最小公倍數為:" + (m * n) / maxGy + "。"); // 公式:最小公倍數 =  兩個數相乘/最大公約數
 }

以上是关于java基礎最大公約數最小公倍數的主要内容,如果未能解决你的问题,请参考以下文章

最大公倍数

蓝桥杯练习系统—算法训练 最小最大公倍数

题目1438:最小公倍数(利用最大公倍数求解)

31求最大公约数和最大公倍数

JSK-391 公约公倍入门

算法---最小公倍数和最大公约数