java递归实现最大公约数和最小公倍数

来源:互联网 发布:手机卡iphone7在线软件 编辑:程序博客网 时间:2024/06/05 03:42

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

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


第二个最小公倍数更简单

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


关键代码如下:

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


原创粉丝点击