<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> 请输入一个数:<input id="numText" type="text" /> <input type="button" value=" 是否为素数 " onclick ="testf()" /> <input id="resultText" type="text" /> </body> </html> <script type="text/javascript"> //判断一个数是不是合数。(能被1和自身以外的数整除) //素数:又称质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 //分析:通过循环的方式,从2循环到需要判断的数的前一个数,进行尝试,如果一旦有数能够整除,那就是合数。 //方法一: function testf(){ //1、(输入)获得文本框的内容 var num = Number(document.getElementById("numText").value); //2、逻辑 var isHe = false;//假定不是合数,假定没有因数出现 for(var i=2;i<=num-1;i++){ if(num%i==0){ isHe = true;//有因数出现了。 break; } } if(isHe==true){ document.getElementById("resultText").value="是合数"; }else{ document.getElementById("resultText").value="不是合数"; } } //方法二: function testf(){ //1、(输入)获得文本框的内容 var num = Number(document.getElementById("numText").value); //2、逻辑 var count=0;//记录因数的个数 for(var i=2;i<=num-1;i++){ if(num%i==0){ count++; //break; } } //3、输出 if(count>0){ document.getElementById("resultText").value="是合数"; }else{ document.getElementById("resultText").value="不是合数"; } } //方法三 function testf(){ //1、(输入)获得文本框的内容 var num = Number(document.getElementById("numText").value); //2、逻辑 for(var i=2;i<=num-1;i++){ if(num%i==0){ break; } } //3、输出 if(i>num-1){//说明循环正常结束(没有经过break) document.getElementById("resultText").value="是素数"; }else{//说明是被break终止的 document.getElementById("resultText").value="是合数"; } } </script>
//功能:判断一个数是不是素数(除了1和它本身以外,再没有因数了) //参数:整数 //返回值:true:是;false:否; function isSuShu(num){//num是形参 for(var n=2;n<=num-1;n++){ if(num%n==0){ return false;//return 结束函数的运行,终止函数。 } } return true; }