> 文档中心 > 最小公倍数

最小公倍数

文章目录

      • **1.求最小公倍数**
      • **2.1已知最大公约数求最小公倍数**
      • **2.2已知最大公约数求最小公倍数**(当x和y比较大的时候,2.1的方法可能会导致溢出)

1.求最小公倍数

public int lcm(int x ,int y){for(int i=Math.max(x,y);i<x*y;i++){//x和y的最大公约数一定在最大的那个数和x*y之间if(i%x ==0 && i%y==0){//在小于x*y的时候找到了最小公倍数return i;}}return x*y;//在x*y的时候没有公倍数,那么x*y就是他俩的最小公倍数}

运行结果图(求2和3的最小公倍数):
最小公倍数

2.1已知最大公约数求最小公倍数

public int lcm(int x,int y){return x*y/gcd(x,y);//gcd(x,y)是x和y的最大公约数}

例如:
a.求 2和4的最小公倍数,2和4的最大公约数为2,则它的最小公倍数就等于(24)/2=4;
b.求3和4的最小公倍数,3和4的最大公约数为1,则它的最小公倍数就等于(3
4)/1=12,即12就是3和4的最小公倍数。

2.2已知最大公约数求最小公倍数(当x和y比较大的时候,2.1的方法可能会导致溢出)

public int lcm(int x,int y){int num=gcd(x,y);return (x/num)*(y/num)*gcd;}

这个就不举例子啦,我相信你们聪明的大脑肯定是可以想明白的。