不理解测试数字是否为质数的代码
Do not understand code to test if a number is prime or not
我在网上找到了这段代码。这不是我自己的。这是一个测试给定数字是否为素数的函数。该代码用于确定数字是否为质数。我只是不明白它是如何工作的。
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,则 return false 表示 1 不是质数。 else if n 等于 2 then return true because 2 is a prime number.
else 语句中的所有内容对我来说都没有意义。如果你为 25 调用函数测试,它不是质数,25%x,x=2,等于 1。那么为什么函数 return false?
我知道我不理解 for 循环。
如果 n
既不是 1 也不是 2,则取 2 到 n
之间的数字范围并检查 n
是否可以被任何这些数字整除。如果是,那么它不是质数,所以你 return 错了。如果范围内的 none 个数字除以 n
,则 n
必须是质数。
else 块的解释
else
{
for(var x = 2; x < n; x++) // Iterating over possible divisors i.e number - 1
{
if(n % x === 0) // Checking whether the number is divisible by any number, if it is then return false i.e. number is not a prime number
{
return false;
}
}
// If the number is not divisible by any number return true
return true;
}
for(var x = 2; x < n; x++)
{
if(n % x === 0)
{
return false;
}
}
我想你会这样看:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
x的值在2到n-1之间。当您处于循环中时,x 的值正在发生变化:首先 x=1,然后 x=2,后来 x=3...当 x=5 时,条件为真,然后 return 为假。
我在网上找到了这段代码。这不是我自己的。这是一个测试给定数字是否为素数的函数。该代码用于确定数字是否为质数。我只是不明白它是如何工作的。
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,则 return false 表示 1 不是质数。 else if n 等于 2 then return true because 2 is a prime number.
else 语句中的所有内容对我来说都没有意义。如果你为 25 调用函数测试,它不是质数,25%x,x=2,等于 1。那么为什么函数 return false?
我知道我不理解 for 循环。
如果 n
既不是 1 也不是 2,则取 2 到 n
之间的数字范围并检查 n
是否可以被任何这些数字整除。如果是,那么它不是质数,所以你 return 错了。如果范围内的 none 个数字除以 n
,则 n
必须是质数。
else 块的解释
else
{
for(var x = 2; x < n; x++) // Iterating over possible divisors i.e number - 1
{
if(n % x === 0) // Checking whether the number is divisible by any number, if it is then return false i.e. number is not a prime number
{
return false;
}
}
// If the number is not divisible by any number return true
return true;
}
for(var x = 2; x < n; x++)
{
if(n % x === 0)
{
return false;
}
}
我想你会这样看:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
x的值在2到n-1之间。当您处于循环中时,x 的值正在发生变化:首先 x=1,然后 x=2,后来 x=3...当 x=5 时,条件为真,然后 return 为假。