Java基础50道经典练习题(6)——求最大公约数和最小公倍数

【程序 6 求最大公约数及最小公倍数】
题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
程序分析:利用辗除法。
 
源码:
package com.homework.test;
import java.util.*;
/*
【程序 6 求最大公约数及最小公倍数】
题目:输入两个正整数 m 和 n,求其最大公约数和最小公倍数。
程序分析:利用辗除法。


 */

public class gcd_lcm {
    public static void main(String [] args){
        Scanner in = new Scanner(System.in);
        System.out.print("Please input two numbers:");
        int num1 = in.nextInt();
        int num2 = in.nextInt();
        in.close();
        int gcd = Gcd(num1,num2);
        int lcm = Lcm(num1,num2);
        System.out.println("The GCD is "+gcd);
        System.out.println("The LCM is "+lcm);
    }

    //最大公约数  ——> 辗转相除法
    public static int Gcd(int m,int n){
        int temp;
        if(m<n)
        {
            temp = m;
            m = n;
            n = temp;
        }
        if(n == 0)      //余数为零
            return m;   //此时m为上一次除法中较小的数即n
        else
            return Gcd(n, m%n);//递归调用
    }


    //最小公倍数
    public static int Lcm(int m,int n){
        return (m*n)/Gcd(m,n);
    }


}

  

posted on 2020-06-04 20:03  lifelicanpeng  阅读(560)  评论(0编辑  收藏  举报

导航