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)
- Replace array elements by sum of next two consecutive elements
- Print last character of each word in a string
- Number of subarrays having sum of the form k^m, m >= 0
- Compute maximum of the function efficiently over all sub-arrays
- Determine the numer of squares that line will pass through
- Given count of digits 1, 2, 3, 4, find the maximum sum possible
- Check if product of array containing prime numbers is a perfect square
- Find the good permutation of first N natural numbers
- Find the maximum number of composite summands of a number
- Minimum number operations required to convert n to m | Set-2
- Minimum number of given operation required to convert n to m
- Program to find the time after K minutes from given time
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