我有一个代码来获取素数列表:
def primes_numbers num
primes = [2]
3.step(Math.sqrt(num) + 1, 2) do |i|
is_prime = true
primes.each do |p| # (here)
if (p > Math.sqrt(i) + 1)
break
end
if (i % p == 0)
is_prime = false
break
end
end
if is_prime
primes << i
end
end
primes
end
Run Code Online (Sandbox Code Playgroud)
是否可以使用Array方法重写代码(选择,收集等等)?就像是:
s = (3..n)
s.select { |x| x % 2 == 1}.select{ |x| ..... }
Run Code Online (Sandbox Code Playgroud)
问题是我需要在select方法中迭代结果数组(注释'here').
ruby ×1