Calculate the value of (m)1/n in JavaScript

In JavaScript, calculating the nth root of a number (m^(1/n)) is a common mathematical operation used in various applications. The nth root is the inverse of exponentiation - for example, the cube root of 27 is 3 because 3³ = 27.

Understanding the nth Root

The nth root of a number m is written as m^(1/n), where:

  • m is the base number
  • n is the root degree
  • The result is the number that, when raised to the power n, equals m

Syntax

Math.pow(base, exponent)
// For nth root: Math.pow(m, 1/n)

Using Math.pow() (Simple Approach)

The most straightforward method uses JavaScript's built-in Math.pow() function with the formula Math.pow(m, 1/n).

let m = 64;  // Base number
let n = 3;   // Root degree (cube root)
let root = Math.pow(m, 1/n);
console.log(`The ${n}rd root of ${m} is: ${root}`);

// More examples
console.log("Square root of 16:", Math.pow(16, 1/2));
console.log("4th root of 81:", Math.pow(81, 1/4));
console.log("5th root of 32:", Math.pow(32, 1/5));
The 3rd root of 64 is: 4
Square root of 16: 4
4th root of 81: 3
5th root of 32: 2

Using Newton's Method (Iterative Approach)

Newton's method provides a more precise calculation through iterative refinement. It starts with an initial guess and improves it until the desired accuracy is achieved.

function nthRoot(m, n, tolerance = 0.0001) {
    let x = m / n; // Initial guess
    
    while (Math.abs(Math.pow(x, n) - m) > tolerance) {
        x = ((n - 1) * x + m / Math.pow(x, n - 1)) / n;
    }
    return x;
}

let m = 27;
let n = 3;
let root = nthRoot(m, n);
console.log(`Newton's method result: ${root}`);
console.log(`Rounded result: ${Math.round(root)}`);
Newton's method result: 3.000000068671529
Rounded result: 3

Using Binary Search

Binary search narrows down the search range by repeatedly dividing it in half until the nth root is found within the specified tolerance.

function nthRootBinary(m, n, tolerance = 0.0001) {
    let low = 0;
    let high = Math.max(1, m);
    let mid;
    
    while (high - low > tolerance) {
        mid = (low + high) / 2;
        let guess = Math.pow(mid, n);
        
        if (guess < m) {
            low = mid;
        } else if (guess > m) {
            high = mid;
        } else {
            break;
        }
    }
    return mid;
}

let m = 27;
let n = 3;
let root = nthRootBinary(m, n);
console.log(`Binary search result: ${root}`);
console.log(`Rounded result: ${Math.round(root)}`);
Binary search result: 3.000040054321289
Rounded result: 3

Comparison of Methods

Method Accuracy Performance Use Case
Math.pow() High Fastest General purpose
Newton's Method Very High Moderate High precision needed
Binary Search High Slower Educational/custom logic

Practical Example

// Function to calculate and compare all methods
function calculateNthRoot(m, n) {
    console.log(`Finding the ${n}th root of ${m}:`);
    
    // Method 1: Math.pow()
    let result1 = Math.pow(m, 1/n);
    console.log(`Math.pow(): ${result1}`);
    
    // Method 2: Newton's method
    let result2 = nthRoot(m, n);
    console.log(`Newton's method: ${result2}`);
    
    // Method 3: Binary search
    let result3 = nthRootBinary(m, n);
    console.log(`Binary search: ${result3}`);
    
    // Verification
    console.log(`Verification: ${result1}^${n} = ${Math.pow(result1, n)}`);
}

calculateNthRoot(125, 3); // Cube root of 125
Finding the 3th root of 125:
Math.pow(): 5
Newton's method: 5.000000000000001
Binary search: 5.000040054321289
Verification: 5^3 = 125

Conclusion

For most applications, Math.pow(m, 1/n) provides the simplest and most efficient solution for calculating nth roots in JavaScript. Newton's method offers higher precision when needed, while binary search provides educational value and custom control over the calculation process.

Updated on: 2026-03-15T23:19:00+05:30

270 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements