Tell us what’s happening:
I got all test to pass except for one the final test will not run . Is there a way you can look over my code and explain to me where I went wrong and break it down for me in laymen terms.
Your code so far
function check_mersenne(p) {
// Calculate the Mersenne number
const mersenneNumber = BigInt(Math.pow(2, p) - 1);
// Function to check if a number is prime
function isPrime(n) {
if (n <= 1n) return false;
if (n <= 3n) return true;
if (n % 2n === 0n || n % 3n === 0n) return false;
for (let i = 5n; i * i <= n; i += 6n) {
if (n % i === 0n || n % (i + 2n) === 0n) return false;
}
return true;
}
// Check if the Mersenne number is prime
if (isPrime(mersenneNumber)) {
return `M${p} = 2^${p}-1 is prime`;
} else {
// Find a factor of the Mersenne number
for (let i = 2n; i * i <= mersenneNumber; i++) {
if (mersenneNumber % i === 0n) {
return `M${p} = 2^${p}-1 is composite with factor ${i}`;
}
}
return `M${p} = 2^${p}-1 is composite`;
}
}
// Test the function
console.log(check_mersenne(3)); // M3 = 2^3-1 is prime.
console.log(check_mersenne(23)); // M23 = 2^23-1 is composite with factor 47.
console.log(check_mersenne(929)); // M929 = 2^929-1 is composite with factor 13007.
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0
Challenge Information:
Rosetta Code Challenges - Factors of a Mersenne number