不理解代码来测试数字是否为素数

Che*_*gos 2 javascript primes

我在网上找到了这个代码.这不是我自己的.这是一个测试给定数字是否为素数的函数.该代码用于确定数字是否为素数.我只是不明白它是如何工作的.

function test_prime(n)  
{  

  if (n===1)  
  {  
    return false;  
  }  
  else if(n === 2)  
  {  
    return true;  
  }else  
  {  
    for(var x = 2; x < n; x++)  
    {  
      if(n % x === 0)  
      {  
        return false;  
      }  
    }  
    return true;    
  }  
}  

alert(test_prime(25)); 
Run Code Online (Sandbox Code Playgroud)

第一个if和else if语句对我有意义.如果n等于1,则返回false,即1不是素数.否则,如果n等于2,则返回true,因为2是素数.

else语句中的所有内容对我来说都没有意义.如果你调用函数测试25,这不是素数,25%x,x = 2,等于1.那么为什么函数会返回false?

我知道有一些关于for循环我不理解.

Hun*_*yan 6

如果n既不是1也不是2,则取2和之间的数字范围,n并检查是否n可以被任何这些数字整除.如果是,那么它不是素数,所以你返回false.如果范围中没有数字除以n,那么n必须是素数.