Java求最大公约数和最小公倍数

public class 最大公约数和最小公倍数 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            int gcd1 = gcd1(a, b);
            System.out.println("欧几里得:" + gcd1);
            int gcd2 = gcd2(a, b);
            System.out.println("递归;" + gcd2);
            int lcm = lcm(a, b);
            System.out.println("最小公倍数:"+lcm);
        }
    }

    public static int gcd1(int a, int b) {

            /* 欧几里得辗转法
             if a =24,b=15;
             gcd = (b,a%b);
                 =  (15,9);
                 =  (9,6);
                 =  (6,3);
                 =  (3,3);
                 =  (3,0);

             */
        while (b > 0) {
            int temp = a % b;
            a = b;
            b = temp;
        }
        return a;
    }

    public static int gcd2(int a, int b) {
        //  递归
        return b == 0 ? a : gcd2(b, a % b);
    }

    // 最小公倍数
    public static int lcm(int a, int b) {
        // 最小公倍数公式lcm(a,b) = a * b / gcd(a,b);
        int res = 0;
        return res = a * b / gcd1(a, b);
    }
}
  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值