【发布时间】:2013-12-20 09:10:05
【问题描述】:
为了加快我的程序,我正在尝试将这两种方法结合起来,但这样做最困难。方法如下:
def prime?(number, array)
array.each do |x|
if number % x == 0
return false
end
end
true
end
def sum_prime_2(number)
i = 0
prime = 1
output = [2]
while prime < number
if prime?(prime, output)
i += 1
output << prime if prime != 1
end
prime += 2
end
output.inject(:+)
end
这是我想出的,但它并不完全有效。我很乐意提供任何帮助。
def sum_prime(number)
i = 0
prime = 1
output = [2]
while prime < number
if output.each { |x| prime % x == 0 } == true # prime? method
output << prime if prime != 1
i += 1
end
prime += 2
end
output.inject(:+)
end
【问题讨论】:
-
两行
output的意义何在,第一行紧跟在while prime < number之后,又在i += 1之后? -
这与您上次[1]问这个问题有何不同? [1]:stackoverflow.com/questions/20365382/…
-
@Tin 感谢您的关注。我正在使用它们来查看发生了什么,但我删除了它们。