Project Euler - Problem 1

http://odz.sakura.ne.jp/projecteuler/ の和訳にお世話になっています。

10未満の自然数のうち、3 もしくは 5 の倍数になっているものは 3, 5, 6, 9 の4つがあり、 これらの合計は 23 になる。

同じようにして、1,000 未満の 3 か 5 の倍数になっている数字の合計を求めよ。
def common_multiples(limit, *nums)
  return enum_for(__method__, limit, *nums) unless block_given?
  (1...limit).each{|x| yield(x) if nums.any?{|n| x % n == 0 } }
end

p common_multiples(1000, 3, 5).inject(0, :+)
#=> 233168