【问题标题】:How to determine if a number is prime JS [duplicate]如何确定一个数字是否是素数 JS [重复]
【发布时间】:2013-07-06 07:33:59
【问题描述】:

我对 JS 知之甚少 我想知道如果有人输入了一个数字,他们是否能分辨出它是素数。

function prime(num) {
    for (var i = 2; i < num; i++) {
        if (num % i === 0 && i !== num) {
            break;
        } else {
            console.log("true")
        }
    }
}

我姐姐给了我这个挑战,我不知道该怎么做……有什么提示或技巧,或者我可以剖析并理解它是如何工作的代码吗?

谢谢,

【问题讨论】:

  • 不知道以前有没有问过这个问题?哦,它有:stackoverflow.com/questions/11966520/how-to-find-prime-numbers
  • 你的代码有什么问题?
  • 简单的 Google 搜索会找到很多答案。
  • @naomik 那是找到 0-100 的所有素数,而不是特定的数字。 @Felix 似乎一切都变得“真实”,即使它不是素数。
  • 你可以去掉&amp;&amp; i !== num部分。这永远不会是真的。

标签: javascript


【解决方案1】:

如果 your_number % === 0 this is end - 这个数字不是质数,则从 i = 2 到 sqrt(your_number) 的循环数之后找到您的数字的 sqrt。

数字 37 的简短示例。

var n = 37;
var m = Math.sqrt(n);
var isPrime = true;
for (var i = 2; i <= m; i++) {
    if (n % i == 0) {
        isPrime = false;
        break;
    }
}

if (isPrime) {
    document.write(n + ' - Prime number<br/>');
} else {
    document.write(n + ' Is not prime number<br/>');
}

【讨论】:

  • 为什么要开平方?
  • @Kmeixner 你的循环会运行得更快
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-25
  • 2011-11-27
  • 2015-01-22
  • 2011-02-17
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多