題目6:求其最大公約數(shù)和最小公倍數(shù)

題目:

輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。

程序分析:

利用輾除法

程序代碼:

package com.ljy.tencent;
import java.util.Scanner;
/**
 * 題目:輸入兩個(gè)正整數(shù)m和n,求其最大公約數(shù)和最小公倍數(shù)。
 * 程序分析:利用輾除法。
 * @author liaojianya
 * 2016年10月3日
 */
public class LcmGcd
{
    public static void main(String[] args)
    {
        //從控制臺(tái)輸入兩個(gè)數(shù),大小順序隨意
        Scanner input = new Scanner(System.in);
        System.out.print("輸入第一個(gè)數(shù):");
        int num1 = input.nextInt();
        System.out.print("輸入第二個(gè)數(shù):");
        int num2 = input.nextInt();
        //分別調(diào)用求解最大公約數(shù)和最小公倍數(shù)的方法
        System.out.println(num1 + "和" + num2 + "的最大公約數(shù)為:" + greatestCommonDivisor(num1, num2));    
        System.out.println(num1 + "和" + num2 + "的最小公倍數(shù)為:" + leastCommonMultiple(num1, num2));
        input.close();
    }
    //最大公約數(shù)算法(使用輾除法)
    public static int greatestCommonDivisor(int n1, int n2)
    {
        //保證第一個(gè)數(shù)大于第二個(gè)數(shù)
        if(n1 < n2)
        {
            int temp = n1;
            n1 = n2;
            n2 =temp;
        }
        //若第一個(gè)數(shù)能整除第二個(gè)數(shù),則第二個(gè)數(shù)即為兩數(shù)的最大公約數(shù)
        if(n1 % n2 == 0)
        {
            return n2;
        }
        //若第一個(gè)數(shù)不能被第二個(gè)數(shù)整除,則將第二個(gè)數(shù)賦給第一個(gè)數(shù),將先前兩者之間的余數(shù)作為第二個(gè)數(shù),繼續(xù)調(diào)用該方法
        else
        {
            return greatestCommonDivisor(n2, n1 % n2);
        }
    }
    //調(diào)用最大公約數(shù)方法,將num1和num2相乘之后除以?xún)蓚€(gè)數(shù)之前的最大公約數(shù)
    public static int leastCommonMultiple(int n1, int n2)
    {
        return n1 * n2 / (greatestCommonDivisor(n1, n2));
    }
}

結(jié)果輸出:

輸入第一個(gè)數(shù):12
輸入第二個(gè)數(shù):23
12和23的最大公約數(shù)為:1
12和23的最小公倍數(shù)為:276
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容