JavaScript 中的梅森質數


在數學中,Mersenne 質數是指可以寫成 M(n) = 2^n − 1 的數字,其中 n 是某個整數,並且它是一個質數。

例如,前四個 Mersenne 質數為:3、7、31 和 127

我們需要編寫一個 JavaScript 函式,用以獲取一個數字,並檢查它是否是一個 Mersenne 質數。以下是如何編寫該函式:

示例

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

更新時間:2020 年 8 月 31 日

222 次瀏覽

啟動你的 職業生涯

透過完成該課程獲得認證

立即開始
廣告
© . All rights reserved.