• 求最小公倍数


    题目描述

    正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小公倍数。

    输入描述:

    输入两个正整数A和B。

    输出描述:

    输出A和B的最小公倍数。

    示例1

    输入

    5 7
    

    输出

    35

    思路,最小公倍数等于两数相乘除以最大公约数,最大公约数用更相减损法
    更相减损法是拿两个数中的较大值减去较小值,然后在减数、被减数、差之间选取两个较小值继续相减,直到减数和被减数相等,得出的数就是最大公约数。
    例://更相减损术:
    //8 10
    //10 - 8=2
    //8 - 2= 6
    //6-2=4
    //4-2=2
    //2==2于是最大公约数就是2

    import java.util.Scanner;
    public class Main{
        public static void main(String[] args){
            Scanner sc=new Scanner(System.in);
            int a=sc.nextInt();
            int b=sc.nextInt();
            System.out.print(a*b/me(a,b));
        }
        public static int me(int a,int b){
            if(a==b){
                return a;
            }
            else if(a>b){
                int cc=a-b;
                return me(cc,b);
            }
            else{
                int cc=b-a;
                return me(cc,a);
            }
        }
    }

    也可以用辗转相除法:

    两个整数的最大公bai约数等于其中较小的数和两数的差的最大公约数。例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5);因为252 − 105 = 147,所以147和105的最大公约数也是21。在这个过程中,较大的数缩小了,所以继续进行同样的计算可以不断缩小这两个数直至其中一个变成零。这时,所剩下的还没有变成零的数就是两数的最大公约数。由辗转相除法也可以推出,两数的最大公约数可以用两数的整数倍相加来表示,如21 = 5 × 105 + (−2) × 252。这个重要的等式叫做贝祖等式。

  • 相关阅读:
    使用Visual Studio .Net 做自己的汉化软件
    给所有的Control加两个属性,实现回车键自动跳转到下一个控件
    数字逗号标记—以前原创(一)
    解决w3wp.exe占用CPU和内存问题
    sql日期函数
    索引的使用总结
    w3wp.exe狂占内存
    w3wp.exe占内存CPU问题 WIN2003 IIS6.0假死现象的分析
    查看Linux系统日志
    linux动态增加LV空间
  • 原文地址:https://www.cnblogs.com/hisoka-study/p/13472338.html
Copyright © 2020-2023  润新知