【问题标题】:isPrime Function - check if that num is a Prime Number or not - Javascript [duplicate]isPrime 函数 - 检查该 num 是否是素数 - Javascript [重复]
【发布时间】:2021-01-04 19:15:57
【问题描述】:

我想使用 prompt() 从用户那里获取一个值,并检查这个值是否是素数 该函数必须命名为 isPrime 并且有一个参数命名为 num 我已经写了代码,但结果是 => 0 不是素数 - 1 不是素数3或 4 或 5 或 6 或 7 或 8 或 ..... 在这里是质数我需要帮助来解决这个错误

let insertedValue = prompt("enter your value" , "");

for (var i = 2; i < insertedValue; i++) {
    console.log(i);
}

const isPrime =  (num) => {
    if (num == 0 || num == 1) {
        alert(`${num} isn't a prime number`);
    } else if (num / 1 == num && num / num == 1 && num % i == 0) {
        console.log(`${num} isn't a prime number`);
    } else if (num / 1 == num && num / num == 1 && num % i != 0) {
        console.log(`${num} is a prime number`);
    }
}

isPrime(insertedValue);

【问题讨论】:

  • 不清楚你的问题到底是什么......并且insertedValue是一个字符串,而不是一个数字。
  • 你没有将 i 传递给你的函数。如果您仅限于将 num 作为参数,那么您需要在函数中循环

标签: javascript function ecmascript-6 primes


【解决方案1】:

您可以循环检查该数字是否可以被从2 到该数字的平方根的任何整数整除。如果不是,则该数是素数。

let insertedValue = +prompt("enter your value" , "");
const isPrime =  (num) => {
    if(num <= 1) return false;
    for(let i = 2; i * i <= num; i++)
      if(num % i === 0) return false;
    return true;
}
alert(isPrime(insertedValue) ? `${insertedValue} is a prime number` 
     : `${insertedValue} isn't a prime number`);

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 2015-03-17
    • 2014-10-20
    • 2012-10-14
    • 2021-04-20
    • 2013-05-26
    • 1970-01-01
    • 2010-12-29
    • 2021-11-06
    相关资源
    最近更新 更多