w3resource

JavaScript: Calculate the nth root of a number

JavaScript Math: Exercise-26 with Solution

Write a JavaScript function to calculate the nth root of a number.

Test Data :
console.log(nthroot(64, 2));
8
console.log(nthroot(64, -2));
0.125

Sample Solution:

JavaScript Code:

// Define a function named nthroot that calculates the nth root of a given number.
function nthroot(x, n)
{
    // Determine if n is odd.
    ng = n % 2;
    // If n is odd or x is negative, make x positive.
    if((ng == 1) || x<0)
        x = -x;
    // Calculate the nth root of x.
    var r = Math.pow(x, 1 / n);
    // Raise r to the power of n.
    n = Math.pow(r, n);
  
    // Check if the difference between x and n is less than 1 and both x and n have the same sign.
    if(Math.abs(x - n) < 1 && (x > 0 === n > 0))
        // If n is odd, return -r, otherwise return r.
        return ng ? -r : r; 
}

// Output the result of calculating the square root of 64 to the console.
console.log(nthroot(64, 2));
// Output the result of calculating the square root of 64 with negative exponent to the console.
console.log(nthroot(64, -2));

Output:

8
0.125

Visual Presentation:

JavaScript: Math - Calculate the nth root of a number.

Flowchart:

Flowchart: JavaScript Math- Calculate the nth root of a number

Live Demo:

See the Pen javascript-math-exercise-26 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus.

Previous: Write a JavaScript function to make currency math (add, subtract, multiply, division etc.).
Next: Write a JavaScript function to calculate degrees between 2 points with inverse Y axis.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/javascript-exercises/javascript-math-exercise-26.php