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)
- Check if each element of the given array is the product of exactly K prime numbers
- Fibonacci Power
- Count number of ways to divide an array into two halves with same sum
- Change one element in the given array to make it an Arithmetic Progression
- Difference between High Level and Low level languages
- Maximum possible sub-array sum after at most X swaps
- Find N distinct numbers whose bitwise Or is equal to K
- Create new linked list from two given linked list with greater element at each node
- Program to find the number of men initially
- Exterior angle of a cyclic quadrilateral when the opposite interior angle is given
- Angle between a chord and a tangent when angle in the alternate segment is given
- Radii of the three tangent circles of equal radius which are inscribed within a circle of given radius
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