我是Ruby新手。我想知道如何得到1000以下所有素数的总和。下面的代码打印出1到1000之间的所有素数。
require 'prime'
p = Prime.new
(1..1000).each do |n|
q = p.next()
puts "#{n}: #{q}"
end
如何找到这些素数的总和。感谢您的帮助
答案 0 :(得分:1)
Prime.each(1000).inject :+
# => 76127
答案 1 :(得分:1)
Prime.new已过时。现在Prime有默认实例,您可以将其作为Prime.instance访问。
为方便起见,Prime.instance的每个实例方法都可以作为Prime的类方法访问。
因此,您重构的主要打印代码将是:
Prime.each(1000).with_index { |p, i| puts "#{i+1}: #{p}" }
#=>
1: 2
2: 3
3: 5
4: 7
5: 11
...
...
找到总和:
Prime.each(1000).reduce(:+)
#=> 76127
答案 2 :(得分:1)
这很简单:
Prime.each(1000).inject :+