2013-08-21 48 views
0

我想知道这行:区块长度的解释是什么?

{ |i| (num % i) == 0}.length == 0 

有人能解释块上使用length会发生什么?我想回答有关黄金的因素rubeque问题:

divisors = Array.new 
for d in 2..(num) 
    divisors << d if (num % d) == 0 
end 

primes = divisors.select do |num| 
(2..(num-1)).select { |i| (num % i) == 0}.length == 0 
end 
+0

我建议阅读关于'select'和'reject'以及它们如何与数组一起使用。 –

回答

3

这是对的(2..(num-1)).select { |i| (num % i) == 0}结果调用length - 这是一个数组 - 而不是块。