javascript - var prime = num != 1; 是什么意思?意思是?

标签 javascript

我知道这类似于 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/

相关文章:

javascript - 无法使用 imageSource 模块在 Nativescript/Javascript 中保存 URL 中的图像

javascript - 如何使所有 JavaScript 按钮具有相同的大小?

javascript - 将工厂注入(inject)服务失败

javascript - 比较 3 个 javascript 变量的值

Javascript - 使用函数来验证 div 的内容是否与其他内容匹配?

javascript - 如何在 chrome 开发者工具中的所有标题中搜索?

javascript - 某些默认平板电脑浏览器无法提取 dataURL?

javascript - 如何使用 Cypress 检测 HTML 表单验证中 setCustomValidity 的输出

javascript - 从下拉列表中激活或选中带有 onchange 事件的复选框

javascript - Angular2动态获取组件引用