【发布时间】:2016-03-02 18:21:45
【问题描述】:
我在网上找到了这段代码。它不是我自己的。这是一个测试给定数字是否为素数的函数。该代码用于确定一个数字是否为素数。我只是不明白它是如何工作的。
function test_prime(n)
{
if (n===1)
{
return false;
}
else if(n === 2)
{
return true;
}else
{
for(var x = 2; x < n; x++)
{
if(n % x === 0)
{
return false;
}
}
return true;
}
}
alert(test_prime(25));
第一个 if 和 else if 语句对我来说很有意义。如果 n 等于 1,则返回 false,因为 1 不是素数。否则,如果 n 等于 2,则返回 true,因为 2 是质数。
else 语句中的所有内容对我来说都没有意义。如果调用函数测试25,不是素数,25%x,x=2,等于1。那为什么函数会返回false呢?
我知道 for 循环有一些我不理解的地方。
【问题讨论】:
-
在 x=2 的 n=25 的情况下,该函数不会返回 false。循环将继续增加 x 直到 x=5,此时它会发现 n 可以被 x 整除,then 返回 false。另请注意,此函数的用途非常低效。
标签: javascript primes