为了测试一个数字是否为素数,为什么我们必须测试它是否只能被该数字的平方根整除?
我正在运行Project Euler上的问题来自学Ruby编程. 我知道有一个内置函数可以做到这一点,但我正在避免使用内置函数来帮助我学习.
所以我必须编写一个方法来确定一个数字是否是素数.第一种方法有效,但第二种方法没有.有谁能解释为什么?
def is_prime n
for d in 2..(n - 1)
if (n % d) == 0
return false
end
end
true
end
def is_prime2 n
foundDivider = false
for d in 2..(n - 1)
foundDivider = ((n % d) == 0) or foundDivider
end
not foundDivider
end
Run Code Online (Sandbox Code Playgroud) 我一直在处理素数程序,我遇到了一些Ruby代码:
(2..prime/2).none?{|i| prime % i == 0}
Run Code Online (Sandbox Code Playgroud)
有人可以把它分解给我并用简单的语言向我解释.如果你熟悉reddit EIL5.(解释它就像我是5.)
我在这里找到了代码: