CodeWars(Is a number prime?)

come on~
题目:

Define a function isPrime/is_prime() that takes one integer argument and returns true/True or false/False depending on if the integer is a prime.
Per Wikipedia, a prime number (or a prime) is a natural number greater than 1 that has no positive divisors other than 1 and itself.

解析题目:
题目的大体意思就是,判断一个数字是否是素数,如果是的话返回true/True,不是的话返回False/false。
素数:能被1和自身整除的数,并且不能被其他数字整除就是素数。小于2的不是素数,2是素数。
注意平方根,为了减少重复性,只要比较到开根号的数字就行了。

代码:

   function isPrime(num) {
      if(num<2){
          return false;
      }
      if(num===2){
          return true;
      }   //因为任何一个数都不可能分解成两个大于其平方根的数的乘积.肯定只能分解为一个大于或等于其平方根,另一个小于或等于其平方根.
          for(var i=2;i<=Math.sqrt(num);i++){
              if(num%i===0){
                  return false;
              }
          }
          return true;
    }
        //耗时 很长很长很长

化简一下:

function isPrime1(num) {
        for (var i = 2; i < num; i++){ 
        	if (num % i == 0) 
        	return false;
        }
        return num >= 2;
    }    //小于2的数字 false 等于2 的输出true

哈哈哈 看见别人的代码,然后看见一个大牛,到50000的素数写出来 进行比较。真的优秀呀哈哈哈,画风如下,最佳实践,有趣的灵魂。
在这里插入图片描述

发布了35 篇原创文章 · 获赞 2 · 访问量 9834

猜你喜欢

转载自blog.csdn.net/qq_39532595/article/details/85884638