在数学中,梅森素数是一个可以以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