首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定质数

确定质数
EN

Stack Overflow用户
提问于 2016-06-24 10:51:08
回答 2查看 51关注 0票数 0

我正在尝试编写一个函数来确定一个值是否为质数,然后显示一条消息来提供结果。不幸的是,它不能工作--没有显示错误消息,我看不出一个合理的原因。(对于info,它调用了我独立测试过的函数numbers(),它是有效的-它提供了一个正整数)。我对javascript不是很有经验,但我已经通过在线学习开发了下面的代码。任何指向正确方向的指针都将不胜感激。

代码语言:javascript
复制
function validate() {
var message = "This number is ";
var number;
var value = numbers();
var indicator = true;

for (int i=2; i <= value/2; i++) {
   number = value % i;
   if (number==0)  {
      indicator = false;
      //or indicator = number % 2 != 0;
    break;
   }
 }

 if (indicator) {
 message += "a prime number.";
 }
 else {
 message += "not a prime number.";
}

document.getElementById('text').innerHTML = message;  
}
EN

回答 2

Stack Overflow用户

发布于 2016-06-24 11:04:05

仅素数的偶数为2,因此丢弃所有其他可被2整除的

  • 通过仅考虑奇数来最小化迭代

  • 通过迭代到给定数字的根来最小化更多

所以你能做的就是像下面这样写一个方法:

代码语言:javascript
复制
function isPrime(number) {
    if (number === 2) return true;
    if (number % 2 === 0) return false;
    var flag = true;
    var i, length = Math.ceil(Math.sqrt(number));

    for (i = 3; i <= length; i += 2) {
        if (number % i === 0) {
            flag = false;
            break;
        }
    }
    return flag;
}
票数 0
EN

Stack Overflow用户

发布于 2016-06-24 11:04:44

for循环中将int替换为var

for (var i=2; i <= value/2; i++) {

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

https://stackoverflow.com/questions/38004913

复制
相关文章

相似问题

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