我写了两个函数,其中一个break if array.length == num
语句有效,而另一个没有。以下是方法及其测试,从工作开始:
def primes(n)
ret = []
return [] if n < 1
for num in 2..+1.0/0.0
ret << num if prime?(num)
break if ret.count == n
end
ret
end
def prime?(num)
(1..num).select {|x| num % x == 0}.count == 2
end
puts "\nPrimes:\n" + "*" * 15 + "\n"
puts primes(0) == []
puts primes(1) == [2]
puts primes(2) == [2,3]
puts primes(6) == [2,3,5,7,11,13]
&#13;