zoukankan      html  css  js  c++  java
  • 最大公约数和最小公倍数--java实现

    代码:

       //最大公约数
       public int gcd(int p,int q){
             if(q == 0)    return p;
             return gcd(q, p % q);
        }
    
       //最小公倍数 
       public int lcm(int p,int q){
             int pq = p * q;
             return pq / gcd(p,q);
        }

    测试:

        @Test
        public void go(){
            int p = 5,q =17;
            System.out.println(p+"和"+q+"的最大公约数:"+gcd(p,q));
            System.out.println(p+"和"+q+"的最小公倍数:"+lcm(p,q));
        }
        运行结果:
        5和17的最大公约数:1
        5和17的最小公倍数:85

    原理:

      第一个最大公约数使用的2300年前被发明的欧几里得算法求得,大致原理为:

    如果有两个非负整数p、q,若q==0,则最大公约数为p;否则,p和q的最大公约数就是p除以q所得的余数和q的最大公约数。

      第二个最小公倍数更简单。

    公式:最小公倍数=两整数的乘积÷最大公约数

      

      是不是So Easy!

  • 相关阅读:
    HTML5中drag和drop使用
    E
    D
    杜教BM(解决线性递推式的模板)
    Myeclipse下载安装破解详细版
    D
    IDEA-连接MySQL连不上
    E
    C
    D. Ball(树状数组三维排序,求是否存在三个值都比自己大的人)
  • 原文地址:https://www.cnblogs.com/WreckBear/p/5450413.html
Copyright © 2011-2022 走看看