判断质数
var num = prompt(“请输入”);
//判断合法性
if (num < 1) {
alert(“不合法”);
} else {
//创建变量flag,默认当前是质数
var flag=true;
//获取1-num之间的数
for (var i = 2; i < num; i++) {
//判断num是否能被i整除
//能被整除,一定不是质数,不能被整除,不一定是质数,比如说9循环不到3就会被输出,而不是依次循环完1-8,这便是漏洞所在!!!
if (num % i == 0) {
//能被整除,那么就不是质数
console.log(num+"不是质数")
// flag=false;
}/*else{
(num+"是质数")
break;如果写在里面就跳不出循环
}*/
}
if(flag){
alert(num+"是质数");
}else{
alert(num+"不是质数");
}
**困难在于不能对取模的数取到i-1,if循环一旦遇到符合条件语句的就会跳出循环,所以可以反向出发,寻找可以被整除的数,只要在可以被小于输入数的数整除就一定不是质数,所以可以立一个flag为true,默认当前值为质数,只要可以被整除就返回false,不能被整除那么默认值就成真!**