我正在编写这个程序,在不使用req prime的情况下找到1到100之间的素数。
编程以查找1到100之间的素数
divisors = [2,3,5,7,9,11,13,15]
arr = divisors.to_a
(1..100).each do |value|
if ((value % (arr.each do |n|) != 0))
puts "#{value}"
end
end
什么可以使数组中的每个元素将值除以除数?我在这里缺少什么?
答案 0 :(得分:2)
你的代码中有很多故障,主要是:它的语法不正确,不会被ruby解析器接受。
下面的代码可以使用,但你应该考虑阅读有关ruby语法的一些教程。
divisors = [2,3,5,7,9,11,13]
(1..100).each do |value|
unless divisors.any? { |d| value % d == 0 }
puts "#{value}"
end
end
如果且只有没有分隔符,则该数字为素数。将unless
与Enumerable#any?
结合使用,我们会检查完全相反的否定:d
中是否有dividers
,value % d
为零,我们完成了。