我知道这是一个经典的采访问题,但这是我快速尝试创建一个函数,它返回两个数字的最低公倍数,这是我在日常工作中从未做过的事情:
def calc_common_multiplyer(int_low, int_high)
i = 1
int_high_res = []
while true
int_high_res << int_high * i
if int_high_res.include?(int_low * i)
return int_low * i
end
i = i+1
end
end
我觉得这很笨重。是否有更高效或标准的解决方案?
答案 0 :(得分:10)
我会在Ruby中这样做:
x.lcm(y)
:)
答案 1 :(得分:3)
首先计算最大公约数(例如Euclidean algorithm),然后
lcm(a,b) = if a == 0 && b == 0 then return 0 else return (a*b)/gcd(a,b)
答案 2 :(得分:-1)
def find_lcm(n,m)
n, m = m, n if m < n
count = m
until count % n == 0
count += m
end
count
end