javascript - 在下面的代码中,为什么 j 应该小于 i,为什么 j<=n 不起作用(第 4 行)?
问题描述
我无法理解第 4 行。为什么在我写 j<=n 时它不起作用。
let n = 10;
nextPrime:
for (let i = 2; i <= n; i++) { // for each i...
for (let j = 2; j < i; j++) { // look for a divisor..
if (i % j == 0) continue nextPrime; // not a prime, go next i
}
alert(i); // a prime
}
解决方案
素数是只能被一个和它们自己整除的数字。
此代码有效:
for (let j = 2; j < i; j++) { // here you have to iterate only t
if (i % j == 0) continue nextPrime; // not a prime, go next i
}
因为对于每个i你需要知道是否有一个较小的数字i可以被它整除。
例如:
i === 6;
要知道它是否是质数,您不必测试 1 和 6,而是测试所有其他数字:2、3、4 和 5。由于 6 可以被 2 整除,因此您已经知道它不是质数并且可以转到下一个号码。
这就是为什么你使用j<i
而不是j<=n
.
推荐阅读
- c++ - 每 20 毫秒定期运行线程失败
- sql - 如何使用 Pgadmin 或 Postgresql 查询查找数据上传日期
- maven - 神器部署问题
- google-apps-script - 谷歌脚本中 array.indexOf() 的正则表达式匹配问题
- reactjs - 如何在反应js功能组件中停止多个API请求
- tensorflow - 相同代码中 TensorFlow 2.3.0 和 1.15.0 中的进度输出之间的差异不明确
- typescript - 如何在现有堆栈 AWS Cloudformation 中创建新实例
- python - 我想打印硬拷贝表格和工作人员,例如
- python - python logger在钩子中两次写入字符串
- http - 如何在 Go 中使用 httptrace 跟踪 http.Client