【发布时间】:2020-10-15 08:05:36
【问题描述】:
我对编程很陌生,我正在尝试创建一个方法来返回一个包含 N 个第一个素数的数组。我知道 ruby 中有一个 Prime 类,但我需要创建一个没有它的方法。
这是我到目前为止得到的,但我不断得到奇怪的结果。我觉得有一个简单的逻辑问题,但我找不到它(我不知道 break 在 ruby 中是如何工作的)。
注意事项:
-
我将我的第一次迭代限制在 2000 年以更快地运行测试。
-
@num 是我必须放入 array_prime 的素数数
-
我放 2,因为它是唯一的偶素数,所以我可以在第二个循环中执行 2
def find_prime_array array_prime = [2] while array_prime.size <= @num isPrime = true (1..2000).each do |i| (3..(i-1)).step(2) do |j| if i % j == 0 isPrime = false break end end array_prime << i if isPrime end end array_prime end
提前感谢您的帮助。
【问题讨论】: