华为OJ训练之0028-170109-最小公倍数

题目

正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
//知识点 循环,位运算
//运行时间限制 10M
//内存限制 128
//输入
//输入两个正整数A和B。
//输出
//输出A和B的最小公倍数。
//样例输入 5 7
//样例输出 35

=========================================
一次通过 100分
涉及到数论的问题 需要熟悉相关数学知识

=========================================

import java.util.Scanner;


//正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。
//知识点   循环,位运算
//运行时间限制    10M
//内存限制  128
//输入    
//输入两个正整数A和B。
//输出    
//输出A和B的最小公倍数。
//样例输入  5 7
//样例输出  35

public class oj028 {

//  求最小公倍数算法:
//
//  最小公倍数=两整数的乘积÷最大公约数
//
//  求最大公约数算法:
//
//  (1)辗转相除法
//
//  有两整数a和b:
//
//  ① a%b得余数c
//
//  ② 若c=0,则b即为两数的最大公约数
//
//  ③ 若c≠0,则a=b,b=c,再回去执行①
//
//  例如求27和15的最大公约数过程为:
//
//  27÷15 余1215÷12余312÷3余0因此,3即为最大公约数
    public int getMinGongBei(int a,int b)
    {
        return a*b/getMaxGongYue(a, b);
    }

    //辗转相除法求最大公约数
    public int getMaxGongYue(int a,int b)
    {
        int c=a%b;
        while(c!=0)
        {
            a=b;
            b=c;
            c=a%b;
        }
        return b;

    }



    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);
        int a=scanner.nextInt();
        int b=scanner.nextInt();

        System.out.print(new oj028().getMinGongBei(a, b));
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值