首页 > 解决方案 > isPrime 函数 - 检查该 num 是否为素数 - Javascript

问题描述

我想使用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);

标签: javascriptfunctionecmascript-6primes

解决方案


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`);


推荐阅读