## Related Articles

• Write an Interview Experience
• Mathematical Algorithms

# Square root of a number using log

• Difficulty Level : Easy
• Last Updated : 25 Sep, 2022

For a given number find the square root using log function. Number may be int, float or double.

Examples:

Input  : n = 9
Output : 3

Input  : n = 2.93
Output : 1.711724

We can find square root of a number using sqrt() method:

## C++

 `// C++ program to demonstrate finding``// square root of a number using sqrt()``#include` `int` `main(``void``)``{``    ``double` `n = 12;``    ``printf``(``"%lf "``, ``sqrt``(n));``    ``return` `0;``}`

## Java

 `// Java program to demonstrate finding``// square root of a number using sqrt()` `import` `java.io.*;` `class` `GFG {``    ``public` `static` `void` `main (String[] args) {``    ``double` `n = ``12``;``    ``System.out.println(Math.sqrt(n));`  `// This code is contributed by akt_mit``    ``}``}`

## Python3

 `# Python3 program to demonstrate finding``# square root of a number using sqrt()``import` `math` `if` `__name__``=``=``'__main__'``:``    ``n ``=` `12``    ``print``(math.sqrt(n))` `# This code is contributed by``# Sanjit_Prasad`

## C#

 `// C# program to demonstrate finding``// square root of a number using sqrt()``using` `System;` `class` `GFG``{``public` `static` `void` `Main()``{``    ``double` `n = 12;``    ``Console.Write(Math.Sqrt(n));``}``}` `// This code is contributed``// by Akanksha Rai`

## PHP

 ``

## Javascript

 ``

Output

`3.464102 `

Time complexity: O(log2n), for using sqrt() function.
Auxiliary space: O(1)

We can also find square root using log2() library function:

## C++

 `// C++ program to demonstrate finding``// square root of a number using log2()``#include` `double` `squareRoot(``double` `n)``{``    ``return` `pow``(2, 0.5*log2(n));``}` `int` `main(``void``)``{``    ``double` `n = 12;``    ``printf``(``"%lf "``, squareRoot(n));``    ``return` `0;``}`

## Java

 `// Java program to demonstrate finding``// square root of a number using log2()``import` `java.io.*;` `class` `GFG``{``static` `double` `squareRoot(``double` `n)``{``    ``return` `Math.pow(``2``, ``0.5` `* (Math.log(n) /``                              ``Math.log(``2``)));``}` `// Driver Code``public` `static` `void` `main (String[] args)``{``    ``double` `n = ``12``;``    ``System.out.println(squareRoot(n));``}``}` `// This code is contributed by akt_mit`

## Python

 `# Python program to demonstrate finding``# square root of a number using sqrt()``import` `math` `# function to return squareroot``def` `squareRoot(n):` `    ``return` `pow``(``2``, ``0.5` `*` `math.log2(n))` `# Driver program` `n ``=` `12``print``(squareRoot(n))` `# This code is contributed by``# Sanjit_Prasad`

## C#

 `// C# program to demonstrate finding``// square root of a number using log2()``using` `System;` `public` `class` `GFG{``    ` `static` `double` `squareRoot(``double` `n)``{``     ``return` `Math.Pow(2, 0.5 * (Math.Log(n) /Math.Log(2)));``}` `    ` `    ``static` `public` `void` `Main (){``            ``double` `n = 12;``            ``Console.WriteLine(squareRoot(n));``    ``}``//This code is contributed by akt_mit   ``}`

## PHP

 ``

## Javascript

 ``

Output

`3.464102 `

Time complexity: O(log2log2N), complexity of using log(N) is log(logN), and pow(x,N) is log(N), so pow(2,0.5*log(n)) will be log(logN).
Auxiliary space: O(1)

How does the above program work?

``` let d be our answer for input number n
then n(1/2) = d
apply log2 on both sides
log2(n(1/2)) = log2(d)
log2(d) = 1/2 * log2(n)
d = 2(1/2 * log2(n))
d = pow(2, 0.5*log2(n))  ```

This article is contributed by Tumma Umamaheswararao from Jntuh College of Engineering . If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes arrow_drop_up