Open In App
Related Articles

Square root of a number using log

Improve Article
Improve
Save Article
Save
Like Article
Like

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<bits/stdc++.h>
 
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




<?php
// PHP program to demonstrate finding
// square root of a number using sqrt()
$n = 12;
echo sqrt($n);
 
// This code is contributed by jit_t
?>

Javascript




<script>
 
// Javascript program to demonstrate finding
// square root of a number using sqrt()
var n = 12;
 
document.write(Math.sqrt(n).toFixed(6));
 
// This code is contributed by aashish1995
 
</script>

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<bits/stdc++.h>
 
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




<?php
// PHP program to demonstrate finding
// square root of a number using log2()
function squareRoot($n)
{
    return pow(2, 0.5 * log($n, 2));
}
 
// Driver Code
$n = 12;
echo squareRoot($n);
     
// This code is contributed by ajit
?>

Javascript




<script>
    // Javascript program to demonstrate finding
    // square root of a number using log2()
     
    function squareRoot(n)
    {
         return Math.pow(2, 0.5 * (Math.log(n) /Math.log(2)));
    }
     
    let n = 12;
      document.write(squareRoot(n).toFixed(15));
 
</script>

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.
 


Last Updated : 25 Sep, 2022
Like Article
Save Article
Similar Reads
Related Tutorials