Related Articles

# Program to compute log a to any base b (logb a)

• Last Updated : 28 Apr, 2021

Given two integers a and b, the task is to find the log of a to any base b, i.e. logb a.
Examples:

Input: a = 3, b = 2
Output: 1

Input: a = 256, b = 4
Output: 4

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12.

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

### Using inbuilt log function

1. Find the log of a to the base 2 with the help of log() method

2. Find the log of b to the base 2 with the help of log() method

3. Divide the computed log a from the log b to get the logb a, i.e, Below is the implementation of the above approach

## C++

 // C++ program to find log(a) on any base b#include using namespace std; int log_a_to_base_b(int a, int b){    return log(a) / log(b);} // Driver codeint main(){    int a = 3;    int b = 2;    cout << log_a_to_base_b(a, b) << endl;     a = 256;    b = 4;    cout << log_a_to_base_b(a, b) << endl;     return 0;} // This code is contributed by shubhamsingh10

## C

 // C program to find log(a) on any base b #include #include  int log_a_to_base_b(int a, int b){    return log(a) / log(b);} // Driver codeint main(){    int a = 3;    int b = 2;    printf("%d\n",           log_a_to_base_b(a, b));     a = 256;    b = 4;    printf("%d\n",           log_a_to_base_b(a, b));     return 0;}

## Java

 // Java program to find log(a) on any base bclass GFG{         static int log_a_to_base_b(int a, int b)    {        return (int)(Math.log(a) / Math.log(b));    }         // Driver code    public static void main (String[] args)    {        int a = 3;        int b = 2;        System.out.println(log_a_to_base_b(a, b));             a = 256;        b = 4;        System.out.println(log_a_to_base_b(a, b));    }} // This code is contributed by AnkitRai01

## Python3

 # Python3 program to find log(a) on any base bfrom math import log def log_a_to_base_b(a, b) :    return log(a) // log(b); # Driver codeif __name__ == "__main__" :         a = 3;    b = 2;    print(log_a_to_base_b(a, b));     a = 256;    b = 4;    print(log_a_to_base_b(a, b)); # This code is contributed by AnkitRai01

## C#

 // C# program to find log(a) on any base b using System; public class GFG{         static int log_a_to_base_b(int a, int b)    {        return (int)(Math.Log(a) / Math.Log(b));    }         // Driver code    public static void Main()    {        int a = 3;        int b = 2;        Console.WriteLine(log_a_to_base_b(a, b));             a = 256;        b = 4;        Console.WriteLine(log_a_to_base_b(a, b));    }} // This code is contributed by AnkitRai01

## Javascript

 
Output:
1
4

### Using Recursion

1. Recursively divide a by b till a is greater than b.

2. Count the number of times the divide is possible. This is the log of a to the base b, i.e. logb a

Below is the implementation of the above approach

## C++

 // C++ program to find log(a) on// any base b using Recursion#include using namespace std; // Recursive function to compute// log a to the base bint log_a_to_base_b(int a, int b){    return (a > b - 1)            ? 1 + log_a_to_base_b(a / b, b)            : 0;} // Driver codeint main(){    int a = 3;    int b = 2;    cout << log_a_to_base_b(a, b) << endl;     a = 256;    b = 4;    cout << log_a_to_base_b(a, b) << endl;     return 0;} // This code is contributed by shubhamsingh10

## C

 // C program to find log(a) on// any base b using Recursion #include  // Recursive function to compute// log a to the base bint log_a_to_base_b(int a, int b){    return (a > b - 1)               ? 1 + log_a_to_base_b(a / b, b)               : 0;} // Driver codeint main(){    int a = 3;    int b = 2;    printf("%d\n",           log_a_to_base_b(a, b));     a = 256;    b = 4;    printf("%d\n",           log_a_to_base_b(a, b));     return 0;}

## Java

 // Java program to find log(a) on// any base b using Recursionclass GFG{         // Recursive function to compute    // log a to the base b    static int log_a_to_base_b(int a, int b)    {        int rslt = (a > b - 1)? 1 + log_a_to_base_b(a / b, b): 0;        return rslt;    }         // Driver code    public static void main (String[] args)    {        int a = 3;        int b = 2;        System.out.println(log_a_to_base_b(a, b));             a = 256;        b = 4;        System.out.println(log_a_to_base_b(a, b));    }} // This code is contributed by AnkitRai01

## Python3

 # Python3 program to find log(a) on# any base b using Recursion # Recursive function to compute# log a to the base bdef log_a_to_base_b(a, b) :     rslt = (1 + log_a_to_base_b(a // b, b)) if (a > (b - 1)) else 0;                 return rslt;     # Driver codeif __name__ == "__main__" :     a = 3;    b = 2;    print(log_a_to_base_b(a, b));     a = 256;    b = 4;    print(log_a_to_base_b(a, b)); # This code is contributed by AnkitRai01

## C#

 // C# program to find log(a) on// any base b using Recursionusing System; class GFG{         // Recursive function to compute    // log a to the base b    static int log_a_to_base_b(int a, int b)    {        int rslt = (a > b - 1)? 1 + log_a_to_base_b(a / b, b): 0;        return rslt;    }         // Driver code    public static void Main()    {        int a = 3;        int b = 2;        Console.WriteLine(log_a_to_base_b(a, b));             a = 256;        b = 4;        Console.WriteLine(log_a_to_base_b(a, b));    }} // This code is contributed by Yash_R

## Javascript

 
Output:
1
4

My Personal Notes arrow_drop_up