K-th digit in ‘a’ raised to power ‘b’

Given three numbers a, b and k, find k-th digit in ab from right side

Examples:

Input : a = 3, b = 3,
k = 1
Output : 7
Explanation
3^3 = 27 for k = 1. First digit is 7 in 27

Input : a = 5, b = 2,
k = 2
Output : 2
Explanation
5^2 = 25 for k = 2. First digit is 2 in 25

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Method
1) Compute a^b
2) Iteratively remove the last digit until k-th digit is not meet

C++

 // CPP program for finding k-th digit in a^b #include using namespace std;    // To compute k-th digit in a^b int kthdigit(int a, int b, int k) {     // computing a^b     int p = pow(a, b);        int count = 0;     while (p > 0 && count < k) {            // getting last digit         int rem = p % 10;            // increasing count by 1         count++;            // if current number is required digit         if (count == k)             return rem;            // remove last digit         p = p / 10;     }        return 0; }    // Driver code int main() {     int a = 5, b = 2;     int k = 1;     cout << kthdigit(a, b, k);     return 0; }

Java

 // Java program for finding k-th digit in a^b import java.util.*; import java.lang.*;    public class GfG {     // To compute k-th digit in a^b     public static int kthdigit(int a, int b, int k)     {         // Computing a^b         int p = (int)Math.pow(a, b);            int count = 0;         while (p > 0 && count < k) {                // Getting last digit             int rem = p % 10;                // Increasing count by 1             count++;                // If current number is required digit             if (count == k)                 return rem;                // Remove last digit             p = p / 10;         }            return 0;     }            // Driver Code      public static void main(String argc[]) {         int a = 5, b = 2;         int k = 1;         System.out.println(kthdigit(a, b, k));     }        }    // This code is contributed by Sagar Shukla.

Python3

 # Python3 code to compute k-th  # digit in a^b def kthdigit(a, b, k):            # computin a^b in python     p = a ** b     count = 0            while (p > 0 and count < k):                    # getting last digit         rem = p % 10            # increasing count by 1         count = count + 1            # if current number is          # required digit         if (count == k):             return rem            # remove last digit         p = p / 10;        # driver code     a = 5 b = 2 k = 1 ans = kthdigit(a, b, k) print (ans)    # This code is contributed by Saloni Gupta

C#

 // C# program for finding k-th digit in a^b using System;    public class GfG {            // To compute k-th digit in a^b     public static int kthdigit(int a, int b, int k)     {         // Computing a^b         int p = (int)Math.Pow(a, b);            int count = 0;         while (p > 0 && count < k) {                // Getting last digit             int rem = p % 10;                // Increasing count by 1             count++;                // If current number is required digit             if (count == k)                 return rem;                // Remove last digit             p = p / 10;         }            return 0;     }            // Driver Code      public static void Main() {         int a = 5, b = 2;         int k = 1;         Console.WriteLine(kthdigit(a, b, k));     }        }    // This code is contributed by vt_m.

PHP

 0 and \$count < \$k)     {            // getting last digit         \$rem = \$p % 10;            // increasing count by 1         \$count++;            // if current number is         // required digit         if (\$count == \$k)             return \$rem;            // remove last digit         \$p = \$p / 10;     }        return 0; }        // Driver Code     \$a = 5;     \$b = 2;     \$k = 1;     echo kthdigit(\$a, \$b, \$k);    // This code is contributed by anuj_67. ?>

Output:

5

How to avoid overflow?
We can find power under modulo 10sup>k to avoid overflow. After finding the power under modulo, we need to return first digit of the power.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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 : vt_m

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.