Javascript 如何使用jQuery检查文本框中的值是否为prime

Javascript 如何使用jQuery检查文本框中的值是否为prime,javascript,jquery,primes,Javascript,Jquery,Primes,我试图使用jQuery确定文本框中的值是否为素数 以下是我到目前为止尝试过的,但它不起作用: $(“#textbx”).keyup(函数(){ 如果($(“#textbx”).val().length>0){ $(“#btn”).removeAttr('disabled'); } }); $(“#textbx”).blur(函数(){ if($(“#textbx”).val().length==0){ $(“#btn”).attr('disabled','disabled'); } }); $

我试图使用jQuery确定文本框中的值是否为素数

以下是我到目前为止尝试过的,但它不起作用:

$(“#textbx”).keyup(函数(){
如果($(“#textbx”).val().length>0){
$(“#btn”).removeAttr('disabled');
}
});
$(“#textbx”).blur(函数(){
if($(“#textbx”).val().length==0){
$(“#btn”).attr('disabled','disabled');
}
});
$(“#textbx”)。按键(功能(e){
如果(e.which!=8&(e.which<48 | e.which>57)){
$(“#msg”).html(“仅限plz按下nimber”).show().fadeOut(“慢”);
返回false;
}
});
$(“#btn”)。单击(函数(){
var num=parseInt($(“#textbx”).val();
var i;
对于(var i=2;i>num/2;i++){
如果(i%num==0)
{$(“#msg”).html(“yupp”).show().fadeOut(“slow”);
}
其他的
{$(“#msg”).html(“huh”).show().fadeOut(“慢”);
}
打破
}
});
#msg
{
颜色:红色;
}

这是您的代码稍加修改

演示

函数isPrime(n){
//如果n小于2或不是整数,则根据定义不能是素数。
如果(n<2){返回false}
如果(n!=Math.round(n)){return false}
//现在检查从2到n的平方根的每一个整数。如果其中任何一个正好除以n,n就不能是素数。

对于(var i=2;i,这里是您的代码稍微修改过的地方

演示

函数isPrime(n){
//如果n小于2或不是整数,则根据定义不能是素数。
如果(n<2){返回false}
如果(n!=Math.round(n)){return false}
//现在检查从2到n的平方根的每一个整数。如果其中任何一个正好除以n,n就不能是素数。

对于(var i=2;我尝试这个…@lllaya is代码有什么问题?尝试这个…@lllaya is代码有什么问题?但是你能告诉我我的代码有什么问题为什么它不工作吗?很好。缓存
Math.sqrt(n)可能会带来性能上的轻微改进
在一个变量中,并使用它来为
循环绑定
。但是你能告诉我我的代码有什么问题吗?为什么它不工作?很好。在一个变量中缓存
Math.sqrt(n)
并使用它来为
循环绑定
,可以稍微提高性能。
function isPrime(n) {

   // If n is less than 2 or not an integer then by definition cannot be prime.
   if (n < 2) {return false}
   if (n != Math.round(n)) {return false}

   // Now check every whole number from 2 to the square root of n. If any of these divides n exactly, n cannot be prime.
   for (var i = 2; i <= Math.sqrt(n); i++) {
      if (n % i == 0) {return false}
   }

   // If n%i was never == 0 above, then n must be prime
   return true;

}