首页 >web前端 >js教程 >如何在 JavaScript 中高效检查素数?

如何在 JavaScript 中高效检查素数?

Susan Sarandon
Susan Sarandon原创
2024-10-29 20:12:29763浏览

How to Efficiently Check for Prime Numbers in JavaScript?

如何在 JavaScript 中确定素数

在 JavaScript 中,识别素数是一项常见的编程任务。素数是大于 1 的正整数,除了 1 和它本身之外,不能被任何其他正整数整除。

解决方案 1:朴素方法

提供的代码代码片段提供了一种检查数字是否为素数的简单方法:

<code class="js">let inputValue = 7;
let isPrime = inputValue == 1 ? false : true;

for (let i = 2; i < inputValue; i++) {
  inputValue % i == 0 ? isPrime *= false : isPrime *= true;
}

alert(`${inputValue} is ${isPrime ? 'prime' : 'not prime'} number`);

时间复杂度:O(sqrt(n))

空间复杂度: O(1)

解决方案 2:高效方法

检查素数的改进方法是:

<code class="js">const isPrime = num => {
  for (let i = 2, s = Math.sqrt(num); i <= s; i++) {
    if (num % i === 0) return false;
  }
  return num > 1;
};</code>

这段代码利用这样一个事实:如果一个数不是质数,则它的因数小于或等于其平方根。通过检查平方根以下的因子,我们可以有效地消除潜在因子。

时间复杂度:O(sqrt(n))

空间复杂度:O(1)

以上是如何在 JavaScript 中高效检查素数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn