当前位置: 首页 > 知识库问答 >
问题:

在JavaScript中,如果一个数字是素数,则获取布尔值

秦信瑞
2023-03-14

我试图解决这个问题,我需要根据数字在控制台上打印true或false(如果数字是素数,则为true,如果不是素数,则为false)。我似乎有解决方案,但我知道有一个错误的地方,因为我得到不同的答案,如果我改变布尔值的2个是素数变量。

这里有一个问题:如果num是素数,则返回true,否则返回false。

我的代码:

function isPrime(num){
  let isPrime = '';
  for(let i = 2; i <= Math.sqrt(num); i++){
    if(num % i === 0){
      isPrime = false;
    } else {
      isPrime = true;
    }
  }
  return isPrime;

}

isPrime(11);

共有1个答案

司马飞鸿
2023-03-14

这是因为您的isprime变量可以被重写多次,所以简单的标志(例如)可以防止这个问题。我还为0、1和2添加了检查。有更优雅的方法来做到这一点,但我想保持你的逻辑,这里有一个例子,一些测试

function isPrime(num) {
  let flag = true;
  let isPrime = '';
  if (num === 0 || num === 1) return false;
  if (num === 2) return true;
  for (let i = 2; i <= Math.sqrt(num); i++) {
    if (flag) {
      if(num % i === 0) {
        isPrime = false;
        flag = false;
      } else {
        isPrime = true;
      }
    }
  }
  return isPrime;
}

const numbers = [1, 7, 11, 15, 20];
const booleans = [false, true, true, false, false];

numbers.forEach((item, i) => {
  if (isPrime(item) === booleans[i]) {
    console.log("CORRECT");
  } else {
    console.log("WRONG");
  }
})
 类似资料:
  • 我需要写出一个布尔语句,如果输入的数字(使用扫描仪输入)是。。。 在1到100范围内,但不是40到50范围内的偶数 如中所示,如果用户输入44或46,输出将返回“false”,但如果是45或43,则应返回“true”。如果是一个低于40但小于1的数字,则输出应为“真”。如果是一个大于50但小于100的数字,那么输出也应该是真的。 这是我目前所拥有的... 除了40到50之间的奇数之外,这个函数会返

  • 我尝试了很多方法,但仍然不起作用。我试图捕捉JTextfield中是否有数字,它将使字符串文本变为红色,并弹出该选项。但我的代码只有在两个JTextfield中都有数字时才会被捕获。我希望我的JTextField只有字符和空格。 (jtf2和jtf3是JTextField)

  • 问题内容: 我想知道是否有一种已知的,内置的/优雅的方法来找到匹配给定条件的JS数组的第一个元素。AC#等效项为List.Find。 到目前为止,我一直在使用这样的两功能组合: 然后我可以使用: 但是,既然ECMAScript中有[太多的函数式数组方法,也许已经有这样的东西了?我想很多人必须一直执行这样的事情… 问题答案: 从ES6开始,存在数组的本机方法。一旦找到第一个匹配项并返回值,此操作将停

  • 我想知道是否有一种已知的、内置的/优雅的方法来查找匹配给定条件的JS数组的第一个元素。C#的等价物将是list.find。 到目前为止,我一直在使用这样的两个功能组合: 然后我可以使用: 但是由于ECMAScript中有这么多函数式数组方法,也许已经有类似的东西了?我想很多人都要一直在做这样的事情...

  • 以下是错误代码: 有谁能帮我解决我的问题吗?

  • 我被一件简单的事情困住了。我有一个名为“tags”的布尔值数组能够通过布尔值访问数组的每个元素对我来说很重要: 我传入trackTags数组并将布尔值赋给它(比如说[true,true,true,false])。因此,当我调用trackTags[0]时,我得到了“true”但是,当我打印“Energy”(能量)时,它应该与trackTags(0)相同,该值始终为false。我知道booleans