javascript 素数

71 阅读1分钟

被上了一课,最简单的求素数和九九乘法表竟然一时半会写不出来,啊: 首先写一个简单的判断是否是素数的的代码: 思想:如果这个数可以被不是本身的数整除就不是素数(1先抛开不说)

        var nums=8;
        var flag=true;
              for(var i=0;i<=nums/2;i++)//实际上不用%从0到nums本身这么多个数,只需要多根方nums就可以了,或者nums/2;

              {
                  if(nums%i==0)

                  {
        //如果nums能被小于nums本身的数整除,说明不是素数
        flag=false;
        console.log("不是素数");
                  }

                  }
                  if(flag=true)//我这里写成赋值了,结果会达不到效果,我找半天也没发现这个错误,所以以后再写的时候为避免写错,直接写成隐士的,if(flag)

                  console.log("是素数");

image.png

image.png

然后求一百以内的素数: 只需要把将才输入的nums改为用一个for循环输入100个值就可以了。

但是这样写结果吗达到效果:

for (var j = 1; j <= 100; j++) {  

 var nums = j;  

 var flag = true;  

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

   if (nums % i === 0) {  

    flag = false;  

   }  
   else

   {
    console.log(nums, "是素数");  

   }
 }  
 }

image.png

image.png

正确写法:

for (var j = 1; j <= 100; j++) {  

 var nums = j;  

 var flag = true;  

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

   if (nums % i === 0) {  

    flag = false;  

       break;

   }  
 }   

 if(flag==true)

 console.log(nums, "是素数");  
 }

image.png

第二次碰见这个题,好家伙,同样的问题又犯了一次:

image.png

image.png

这次是用argunments来写素数 image.png

image.png

修改:

image.png

image.png