首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JS中测试数字是否为质数和9位数

如何在JS中测试数字是否为质数和9位数
EN

Stack Overflow用户
提问于 2021-04-24 03:49:26
回答 2查看 55关注 0票数 1

我使用此代码来检测密码,其算法检查数字是否为质数和9位数长度

代码语言:javascript
复制
function passwordIsGiven() {
  var password = document.getElementById("password").value;
  var passwordLength = password.length;
  for (let i = 0; i < password; i++) {
    if (password % i == 0) {
      isPrime = false;
      break;
    }
  }
  if (isPrime && passwordLength == 9) {
    window.alert("Correct");
    window.location.replace("/html/index.html");
  } else {
    window.alert("Wrong code. Try again.");
  }
}
代码语言:javascript
复制
<p>ENTER PASSCODE TO CONTINUE</p>
<input type="password" id="password">
<br><br>
<button type="submit" id="passwordButton" onClick="passwordIsGiven()">Submit</button>

即使有一个正确的9位素数,它总是说它是错的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-24 04:00:58

您可以这样做:并且必须使用以下命令将该值转换为一个数字:

var password = Number(document.getElementById("password").value);

代码语言:javascript
复制
function passwordIsGiven() {
  var password = document.getElementById("password").value;
  var passwordLength = password.toString().length;
  let isPrime = true;
  for (let i = 2; i < password; i++) {
    if (password % i == 0) {
      isPrime = false;
      break;
    }
  }
  if (isPrime && passwordLength === 9) {
    window.alert("Correct");
    window.location.replace("/html/index.html");
  } else {
    window.alert("Wrong code. Try again.");
  }
}

并且还要检查num ===1...as,它既不是素数,也不是复合数。

票数 1
EN

Stack Overflow用户

发布于 2021-04-24 04:04:41

我会采用模块化的方法,将测试分成两个功能。一个用于测试isPrime情况,另一个用于测试长度。

代码语言:javascript
复制
const isPrime = num => {
  for(let i = 2; i < num; i++){
    if(num % i === 0){
           return false;
     }
   }
  return num > 1;
}

const is9digit = number => {
   return number.toString().length;
}

const isPasswordValid = number => is9digit(number) && isPrime(number);

const testNumber = isPasswordValid(333);

if (testNumber) {
   window.alert("Correct");
   window.location.replace("/html/index.html");
}
else {
   window.alert("Wrong code. Try again.");
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67236063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档