<script>
function odds(num){
// var num=9;
var flag=true;//逻辑值 true为素数 false不是素数
var count=0;//循环次数
if(num==0 || num==1){
console.log(num+" 不是素数");
}else{
//
var sqrtNum=Math.sqrt(num);
for(var i=2;i<=sqrtNum;i++){
count++;
if(num%i==0){
// count++;
flag=false;
break;
}
}
if(flag==true){
console.log("当整数为 "+ num +" 时,num不可以被i整除");
console.log(num+"是素数");
}else{
console.log("当整数为 "+ num +" 时,i为 "+ i +"时,因为num/i== "+ num/i +" ,所以num可以被i整除");
console.log(num+"不是素数")
}
}
console.log("循环次数:"+count);
}
var nums=parseInt(prompt("请输入一个整数来判断是否为素数"));
console.time("执行时间");//起始时间
odds(nums);//执行待测函数
console.timeEnd("执行时间");//测试时间
</script>
改进版
加了个判断 如果是2的倍数 为后面的循环筛选掉了偶数
<script>
function odds(num){
// var num=9;
var flag=true;//逻辑值 true为素数 false不是素数
var count=0;//循环次数
if(num==0 || num==1){
console.log(num+" 不是素数");
}else if(num % 2==0){
console.log(num+" 不是素数");
}
else{
//
var sqrtNum=Math.sqrt(num);
for(var i=3;i<=sqrtNum;i+=2){
count++;
if(num%i==0){
// count++;
flag=false;
break;
}
}
if(flag==true){
console.log("当整数为 "+ num +" 时,num不可以被i整除");
console.log(num+"是素数");
}else{
console.log("当整数为 "+ num +" 时,i为 "+ i +"时,因为num/i== "+ num/i +" ,所以num可以被i整除");
console.log(num+"不是素数")
}
}
console.log("循环次数:"+count);
}
var nums=parseInt(prompt("请输入一个整数来判断是否为素数"));
console.time("执行时间");//起始时间
odds(nums);//执行待测函数
console.timeEnd("执行时间");//测试时间
</script>