用JavaScript语言编程实现判断100以内的素数 10

 我来答
百度网友2571d37bb
2015-10-08 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部
以下代码可以实现JavaScript求n个素数,当n=500时满足题目需求。
function prime(n){
    var primeArr = [2];
    var isPrime = function(num, primeList){
        if(num == 2){
            return true;
        }
        for(var i = 3, iLen = Math.sqrt(num), j = 1; i <= iLen; i = primeList[j++]){
            if(num % i == 0){
                return false;
            }
        }
        return true;
    }
    if(isNaN(n) || n < 1){
        return [];
    }
    for(var i = 3,  i < n; i += 2){
        if(isPrime(i, primeArr)){
            primeArr.push(i);

        }
    }
    return primeArr;
}
prime(100)

//函数调用
prime(100);//计算100以内的素数:
素数即除去1和其本身两个数之外,不能被任何数整除的整数。
由公理可知,如果一个整数能被分解成多个整数,则必有一个数不大于该整数的平方根(反证法可知,如果分解成的两个数都大于平方根,则乘积必大于原数),故在循环时,只需循环到该数的平方根即(Math.sqrt(num)为求平方根)
如果一个数能被2整除,则除2之外其他数都不是素数,故从3开始遍历能够减少循环次数
如果一个数能够被分解,则最终分解结果必然为多个素数之积,故循环时只需要尝试之前算好的素数能否整除当前的数,极大减少循环次数
更多追问追答
追问
百度的吧
追答
这个还需要百度吗?
哪里不懂,可以直接讲。
woshidaniel
2015-10-08 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:953万
展开全部
var prime = function(len){
    var i,j;
    var arr = [];
     
  for(i = 1; i < len; i++){
    for(j=2; j < i; j++){  
      if(i%j === 0) {
         break;
      }
    }
     
    if(i <= j && i !=1){
      arr.push(i);
    }
    
  }
  return arr;
};
console.log(prime(100));
更多追问追答
追问

木有用啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我叫土司
2018-09-08
知道答主
回答量:1
采纳率:0%
帮助的人:830
展开全部
var newArr=new Array()
for(s=3;s<=100;s+=2){
for(j=2,arr=2;j<s,arr<s;j++,arr++){
newArr[arr]=s%j
}
var Sech=newArr.indexOf(0)
if(Sech==-1){
document.write(s+",")
}
}
//这个是从3开始的,你也从一开始先打印输出1和2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式