我知道这类似于 another SO question , 但变量 prime
应该是 1
以外的任何数字,在我看来它会被分配 num != 1 的 bool 值
。谁能告诉我这行代码实际上在做什么?
这是使用它的代码
function isPrime( num ) {
var prime = num != 1; // Everything but 1 can be prime
for ( var i = 2; i < num; i++ ) {
if ( num % i == 0 ) {
prime = false;
break;
}
}
return prime;
}
编辑: 我假设这条线做这样的事情:
if( num != 1) {
prime = num;
}
但我还是想知道这行代码为什么或如何这样做。
最佳答案
如您所想,语句 var prime = num != 1;
将 bool 表达式 (num != 1)
的结果赋值给变量 素数
。这种特殊情况包含在每个素数检查代码中,因为 1
本身不是素数。
如果您只检查不超过输入值平方根的除数,您的算法可能会更快。你可以阅读这个 here并且可能会注意到检查 num > i*i
是否比 sqrt(num) > i
更有效。
此外,如果您向算法输入负值或零值,您的算法仍可能返回错误值。
关于javascript - var prime = num != 1; 是什么意思?意思是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13886460/