Given an integer N, the task is to calculate its log to the base 2, i.e. log2 N in Java.
Examples:
Input: N = 2 Output: 1 Input: 1024 Output: 10
Approach:
- Math class in Java (java.lang.Math) is a library which holds the functions to calculate such values, like sin(), cos(), log() etc. But the log() method in Math class calculates the log to the base e. Hence there is no direct method in Java to calculate log to the base 2.
- But as we know that
loga b = loge b / loge a
- Therefore we can calculate log2 N indirectly as:
log2 N = loge N / loge 2
Below is the implementation of the above approach:
Java
// Java code to Calculate log base 2 of an integer import java.io.*; import java.lang.*; class GFG { // Function to calculate the // log base 2 of an integer public static int log2( int N) { // calculate log2 N indirectly // using log() method int result = ( int )(Math.log(N) / Math.log( 2 )); return result; } // Driver code public static void main(String[] args) { int N = 1024 ; System.out.println( "Log " + N + " to the base 2 = " + log2(N)); } } |
Log 1024 to the base 2 = 10