Logarithm

Logarithmic function is the inverse to the exponential function. A logarithm to the base b is the power to which b must be raised to produce a given number. For example, \log_2 8 is equal to the power to which 2 must be raised to in order to produce 8. Clearly, 2^3 = 8 so \log_2 8 = 3. In general, for b > 0 and b not equal to 1.

Fact about Logarithm :

  1. Logarithms were quickly adopted by scientists because of various useful properties that simplified long, tedious calculations.
  2. Logarithm to base 10 (that is b = 10) is called the common logarithm and has many applications in science and engineering.
  3. Natural logarithm, is a logarithm with base e. It is used in mathematics and physics, because of its simpler derivative.
  4. Binary logarithm is a logarithm with base 2 and is commonly used in computer science.

Laws of Logarithms :

Laws Description
\log_a bc \log_a b + \log_a c
\log_a b/c \log_a b\log_a c
\log_a b^c c\log_a b
\log_a 1/b -\log_a b
\log_a 1 0
\log_a a 1
\log_a a^r r
\log_a b*\log_b c \log_a c
\log_b a 1/\log_a b

How to find logarithm of number?

Naive solution:
The idea is to create a function that calculates and returns \log_2 n. For example, if n = 64, then your function should return 6, and if n = 129, then your function should return 7.

C

filter_none

edit
close

play_arrow

link
brightness_4
code

// C program to find log(n) using Recursion
#include <stdio.h>
  
unsigned int Log2n(unsigned int n)
{
    return (n > 1) ? 1 + Log2n(n / 2) : 0;
}
  
int main()
{
    unsigned int n = 32;
    printf("%u", Log2n(n));
    getchar();
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to find log(n)
// using Recursion
class Gfg1 {
  
    static int Log2n(int n)
    {
        return (n > 1) ? 1 + Log2n(n / 2) : 0;
    }
  
    // Driver Code
    public static void main(String args[])
    {
        int n = 32;
        System.out.println(Log2n(n));
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python 3 program to
# find log(n) using Recursion
  
def Log2n(n):
  
    return 1 + Log2n(n / 2) if (n > 1) else 0
  
# Driver code
n = 32
print(Log2n(n))

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to find log(n)
// using Recursion
using System;
  
class GFG {
  
    static int Log2n(int n)
    {
        return (n > 1) ? 1 + Log2n(n / 2) : 0;
    }
  
    // Driver Code
    public static void Main()
    {
        int n = 32;
  
        Console.Write(Log2n(n));
    }
}

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program 
// to find log(n) using Recursion
  
function Log2n($n)
{
    return ($n > 1) ? 1 + Log2n($n / 2) : 0;
}
  
// Drive main
  
    $n = 32;
    echo Log2n($n);
?>

chevron_right



Output :

5

Time complexity: O(log n)
Auxiliary space: O(log n) if the stack size is considered during recursion otherwise O(1)

Efficient solutions:

Practice problems on Logarithm:

Question 1: Find the value of x in equation given 8x+1 – 8x-1 = 63
Solution: Take 8x-1 common from the eq.
It reduce to
8x-1(82 – 1) = 63
8x-1 = 1
Hence, x – 1 = 0
x = 1

Question 2: Find the value of x for the eq. given log0.25x = 16
Solution: log0.25x = 16
It can be write as
x = (0.25)16
x = (1/4)16
x = 4-16

Question 3: Solve the equation log121728 x log96561
Solution: It can be written as
log12(123) x log9(94)
= 3log1212 x 4log99
= 3 x 4 = 12

Question 4: Solve for x
logx3 + logx9 + logx27 + logx81 = 10

Solution: It can be write as
logx(3 x 9 x 27 x 81) = 10
logx(31 x 32 x 33 x 34) = 10
logx(310) = 10
10 logx3 = 10
then, x = 3

Question 5: If log(a + 3 ) + log(a – 3) = 1 ,then a=?
Solution: log10((a + 3)(a – 3))=1
log10(a2 – 9) = 1
(a2 – 9) = 10
a2 = 19
a = √19

Question 6: Solve 1/logab(abcd) + 1/logbc(abcd) + 1/logcd(abcd) + 1/logda(abcd)
Solution:
=logabcd(ab) + logabcd(bc) + logabcd(cd) + logabcd(da)
=logabcd(ab * bc * cd * da)
=logabcd(abcd)2
=2 logabcd(abcd)
=2

Question 7: If xyz = 10 , then solve log(xn yn / zn) + log(yn zn / xn) + log(zn xn / yn)
Solution:
log(xn yn / zn * yn zn / xn * zn xn / yn)
= log xn yn zn
= log(xyz)n
= log10 10n
= n

Question 8: Find (121/10)x = 3
Solution: Apply logarithm on both sides
log(121/10)(121/10)x = log(121/10)3
x = (log 3) / (log 121 – log 10)
x = (log 3) / (2 log 11 – 1)

Question 9: Solve log(2x2 + 17)= log (x – 3)2
Solution:
log(2x2 + 17)= log (x2 – 6x + 9)
2x2 + 17 = x2 – 6x + 9
x2 + 6x + 8 = 0
x2 + 4x + 2x + 8 = 0
x(x + 4) + 2(x + 4) = 0
(x + 4)(x + 2)=0
x= -4,-2

Question 10: log2(33 – 3x)= 10log(5 – x). Solve for x.
Solution: Put x = 0
log2(33 – 1)= 10log(5)
log232 = 5
5 log2 2 = 5
5 = 5
LHS = RHS

 
More problems related to Logarithm :

Recent Articles on Logarithm!



My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : Mithun Kumar, singhpulkit