JavaScript 中的梅森素数

javascriptweb developmentobject oriented programming更新于 2025/10/27 2:20:17

在数学中,梅森素数是一个可以写成 M(n) = 2^n − 1 形式的数字,其中 n 是某个整数,并且实际上是一个素数。

例如 − 前四个梅森素数是 3、7、31 和 127

我们需要编写一个 JavaScript 函数,该函数接受一个数字并检查它是否是梅森素数。让我们为这个函数编写代码

示例

const isPrime = num => {
   let i = 2;
   while(i <= num / 2){
      if(num % i++ === 0){
         return false;
      };
   };
   return true;
}
const mersennePrime = num => {
   if(!isPrime(num)){
      return false;
   };
   let i = 0, n = num+1;
   while(n !== 1){
      if(n % 2 !== 0){
         return false;
      };
      n /= 2;
   };
   return true;
};
console.log(mersennePrime(31));
console.log(mersennePrime(127));
console.log(mersennePrime(3));
console.log(mersennePrime(37));
console.log(mersennePrime(87));
console.log(mersennePrime(7));

输出

控制台中的输出将是 −

true
true
true
false
false
true

相关文章


有用资源