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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用JavaScript语言编程实现判断100以内的素数相关的知识,希望对你有一定的参考价值。

以下代码可以实现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开始遍历能够减少循环次数
如果一个数能够被分解,则最终分解结果必然为多个素数之积,故循环时只需要尝试之前算好的素数能否整除当前的数,极大减少循环次数追问

百度的吧

追答

这个还需要百度吗?
哪里不懂,可以直接讲。

追问

那都不懂

追答

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


这个是循环,见是素数的压到primeArr里面。

参考技术A 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));

追问

木有用啊

追答

这是js,放在script标签之间

参考技术B 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

以上是关于用JavaScript语言编程实现判断100以内的素数的主要内容,如果未能解决你的问题,请参考以下文章

如何用C语言求1至100所有素数的和?

编程 判断输出1到100以内既是3的倍数又是5的倍数的数

c语言程序:编写函数,判断一个正整数是不是为完全平方数,并输出100以内的完全平方数。

用C++求50~100内的素数,具体问题如下

用python计算100以内所有偶数的和

c语言用fun函数求n以内的素数,求n=20的值?