求最小公倍数

正整数A 和 正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A 和B的最小公倍数。 比如输入5和7 ,5和7 的最小公倍数是35,则需要返回35。 输入: 输入两个正整数,如: 5 7 输出: 输出最小公倍数,如: 35 样例输入: 5 7 样例输出: 35

参考解答

m,n的最大公约数 * m,n的最小公倍数  =  m * n

而最大公约数的一种解法为: 辗转相除法:辗转相除法是求两个自然数的最大公约数的一种方法,也叫欧几里德算法。 算法描述:

记被除数为m,除数为n,余数为r;
每次运算将上一次的n作为这次的m,上一次的r作为这一次的n;
直到除尽为止,最后一次的n即为解。

例如,求(319,377):

319÷377 余319
377÷319 余58
319÷58 余29
58÷29 余0
解为29

java代码:

public static void main(String[] args) {
  System.out.println(gcd(5, 7));
  System.out.println(lcm(5, 7));
}

// 最小公倍数
public static int lcm(int m, int n) {
  return m * n / gcd(m, n);
}

// 最大公约数
public static int gcd(int m, int n) {
  if (m % n == 0) {
    return n;
  }
  return gcd(n, m % n);
}

results matching ""

    No results matching ""