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的素数写出来 进行比较。真的优秀呀哈哈哈,画风如下,最佳实践,有趣的灵魂。