function isPrime(n) {
if (n <= 3) { return n > 1 }
if (n % 2 == 0 || n % 3 == 0) { return false }
for (var i = 5 i * i <= n i += 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false
}
}
return true
}
// 测试
console.log(isPrime(2)) // true
console.log(isPrime(3)) // true
console.log(isPrime(4)) // false
console.log(isPrime(5)) // true
运行结果:
// 原理:与比自己小的数相除,如果可以取模为0,表示该数据不为质数for (var i = 2 i < 100 i++) {
var flag = true
for (var j = 2 j <= i / 2 j++) {
if (i % j == 0) {
flag = false
break
}
}
if (flag) // 说明没有全都无法除尽,为质数
$('#div').append('<h4>' + i + '</h4>')
}
<div id="div"></div>
重写了一个,你修改一下吧:<script language=javascript>
var i,j,s,flag
s=""
for(i=2i<100i++){
flag=true
for(j=2j<ij++){
if(i%j==0)
{
flag=false
}
}
if (flag==true) s=s+i+"; "
}
window.alert("1-100之间的素数为:"+s)
</script>