方法1:alert("2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97")
方法2:
function prime(n){var primeArr = [2]
var isPrime = function(num){
for(var i=1 i<=numi++){
for(var j=2j<ij++){
if(i%j==0){
return false
break
}
}
}
return true
}
if(isNaN(n) || n < 1){
return []
}
for(var i = 3, i < n i++){
if(isPrime(i)){
primeArr.push(i)
}
}
return primeArr
}
prime(100)
首先什么质数? 质数就是大于一的自然数中,只能被自己和1整除的数。了解了这个 很容易就能写出判断条件
普通写法:
利用算法的写法:
原理:一个数如果可以进行因数分解,那么必定一个因数<=他的平方根 另一个因数>=他的平方根 那么只需要从2开始 到平方根为止,如果能被整除 就代表不是质数。 (拿16举例,只要能被2整除就代表能被8整除所以只用判断一边)
参考下面代码function isprime(x)
{
for(var i = 2i <sqrt(x)i++)
if(isdiv(x, i) == 0) return false
return true
}