if(check(i)) {
console.log(i)
}
}
// 判断当前给定的数 num 是否为素数, 是素数返回 true, 否则返回 false
function check(num){
if(num === 1) {
// 1 不是素数也不是合数, 返回 false
return false
} else {
// 声明变量用于统计从1~根号下 num,之间 能被 num 整除的数的个数
let count = 0
for(let i=1i<=Math.sqrt(num)i++) {
if(num%i === 0) {
count++
// 当发现在1~根号下 num 之间有超过1个数可以被 num 整除, 说明 num 一定不是素数,直接返回false, 后面的数不用判断了
if(count >1) {
return false
}
}
}
// 因为素数只能被1和自身整除,
// 那么从1~根号下 num 之间一定只有一个数(1)可以被 num 整除, 所以当 count 等于1时, 这个num 就是素数
return count == 1
}
return false
}
var a=n//n为输入所测的数值var b=1//这里不懂,下面关于b是做什么的都不明白
if(a==0||a==1){
document.write("0或1不是素数")
}else{
for(var i=2i<ai++){
if(a%i==0){//没有余数,能整除
b=0 //这就是一个标记,记录a有被某个数整除了
break
}
}
if(b){
document.write(a+"是素数")
}else{
document.write(a+"不是素数")
}
}
写了个小东西,希望对你有帮助<html>
<head>
<script>
function show(){
var base=document.getElementById('base').value
isPrime(base)?alert(base+' 是素数'):alert(base+' 不是素数')
}
function isPrime(number) {
if (number <2) {
return false
} else {
for (var j = 2j <= Math.sqrt(number)j++) {
if (number % j == 0) {
return false
}
}
}
return true
}
function filter(obj) {
var r = /^\d+$/
var r2 = /\D+/
if (!r.test(obj.value)) {
obj.value = obj.value.replace(r2, '')
}
}
function filter2(obj){
var r2 = /\D+/g
clipboardData.setData('text',clipboardData.getData('text').replace(r2,''))
}
</script>
</head>
<body style="font-size:12px">
数字<input type='input' id='base' onkeyup='filter(this)' onbeforepaste="filter2()"/>
<br>
<input type="button" value="素数?" onclick="show()">
</body>
</html>