三个很有用的ruby函数

  # 获得一个数的所有除数
  def get_divisors(n)
    result = []
    1.upto(n ** 0.5) {|i| result += [i, (n / i)] if n % i == 0}
    result.uniq
  end

  # 获得两个数的最大公约数
  def get_max_divisor(n, m)
    n, m = m, n if n < m
    r = n % m
    return m if r == 0
    get_max_divisor(m, r)
  end

  # 获得两个数的最小公倍数
  def get_min_common(x, y)
    z = get_max_divisor(x, y)
    x * y / z
  end

 

具体示例:

 

    p get_divisors(10)  # => [1, 10, 2, 5]
    p get_max_divisor(15, 20)  # => 5
    p get_min_common(15, 20)   # => 60

 

你可能感兴趣的:(Ruby)