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, is equal to the power to which 2 must be raised to in order to produce 8. Clearly, 2^3 = 8 so = 3. In general, for b > 0 and b not equal to 1.
Fact about Logarithm :
- Logarithms were quickly adopted by scientists because of various useful properties that simplified long, tedious calculations.
- Logarithm to base 10 (that is b = 10) is called the common logarithm and has many applications in science and engineering.
- Natural logarithm, is a logarithm with base e. It is used in mathematics and physics, because of its simpler derivative.
- Binary logarithm is a logarithm with base 2 and is commonly used in computer science.
Laws of Logarithms :
Laws | Description |
---|---|
+ | |
– | |
* | |
How to find logarithm of number?
Naive solution:
The idea is to create a function that calculates and returns . For example, if n = 64, then your function should return 6, and if n = 129, then your function should return 7.
C
// 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; } |
Java
// 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)); } } |
Python3
# 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)) |
C#
// 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)); } } |
PHP
<?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 ); ?> |
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 8^{x+1} – 8^{x-1} = 63
Solution: Take 8^{x-1} common from the eq.
It reduce to
8^{x-1}(8^{2} – 1) = 63
8^{x-1} = 1
Hence, x – 1 = 0
x = 1
Question 2: Find the value of x for the eq. given log_{0.25}x = 16
Solution: log_{0.25}x = 16
It can be write as
x = (0.25)^{16}
x = (1/4)^{16}
x = 4^{-16}
Question 3: Solve the equation log_{12}1728 x log_{9}6561
Solution: It can be written as
log_{12}(12^{3}) x log_{9}(9^{4})
= 3log_{12}12 x 4log_{9}9
= 3 x 4 = 12
Question 4: Solve for x
log_{x}3 + log_{x}9 + log_{x}27 + log_{x}81 = 10
Solution: It can be write as
log_{x}(3 x 9 x 27 x 81) = 10
log_{x}(3^{1} x 3^{2} x 3^{3} x 3^{4}) = 10
log_{x}(3^{10}) = 10
10 log_{x}3 = 10
then, x = 3
Question 5: If log(a + 3 ) + log(a – 3) = 1 ,then a=?
Solution: log_{10}((a + 3)(a – 3))=1
log_{10}(a^{2} – 9) = 1
(a^{2} – 9) = 10
a^{2} = 19
a = √19
Question 6: Solve 1/log_{ab}(abcd) + 1/log_{bc}(abcd) + 1/log_{cd}(abcd) + 1/log_{da}(abcd)
Solution:
=log_{abcd}(ab) + log_{abcd}(bc) + log_{abcd}(cd) + log_{abcd}(da)
=log_{abcd}(ab * bc * cd * da)
=log_{abcd}(abcd)^{2}
=2 log_{abcd}(abcd)
=2
Question 7: If xyz = 10 , then solve log(x^{n} y^{n} / z^{n}) + log(y^{n} z^{n} / x^{n}) + log(z^{n} x^{n} / y^{n})
Solution:
log(x^{n} y^{n} / z^{n} * y^{n} z^{n} / x^{n} * z^{n} x^{n} / y^{n})
= log x^{n} y^{n} z^{n}
= log(xyz)^{n}
= log_{10} 10^{n}
= 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(2x^{2} + 17)= log (x – 3)^{2}
Solution:
log(2x^{2} + 17)= log (x^{2} – 6x + 9)
2x^{2} + 17 = x^{2} – 6x + 9
x^{2} + 6x + 8 = 0
x^{2} + 4x + 2x + 8 = 0
x(x + 4) + 2(x + 4) = 0
(x + 4)(x + 2)=0
x= -4,-2
Question 10: log_{2}(33 – 3^{x})= 10^{log(5 – x)}. Solve for x.
Solution: Put x = 0
log_{2}(33 – 1)= 10^{log(5)}
log_{2}32 = 5
5 log_{2} 2 = 5
5 = 5
LHS = RHS
More problems related to Logarithm :
- Find minimum number of Log value needed to calculate Log upto N
- Find maximum among x^(y^2) or y^(x^2) where x and y are given
- Print all substring of a number without any conversion
- Program to compare m^n and n^m
- Find larger of x^y and y^x
Recommended Posts:
- Iterated Logarithm log*(n)
- Discrete logarithm (Find an integer k such that a^k is congruent modulo b)
- Count of elements that can be deleted without disturbing the mean of the initial array
- Count non-negative triplets with sum equal to N
- Find maximum xor of k elements in an array
- Find the prime P using given four integers
- Convert a String to an Integer using Recursion
- Find the sum of the first half and second half elements of an array
- Time taken per hour for stoppage of Car
- Removing a number from array without changing its arithmetic mean
- Remove minimum elements from the array such that 2*min becomes more than max
- Number of balanced parenthesis substrings
- Check whether the triangle is valid or not if angles are given
- Append a digit in the end to make the number equal to the length of the remaining string
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.