Open In App

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

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

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 Practice

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 <bits/stdc++.h>
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):
     
    # computing 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.


Javascript




<script>
 
// JavaScript program for finding k-th digit in a^b
 
// To compute k-th digit in a^b
    function kthdigit(a, b, k)
    {
        // Computing a^b
        let p = Math.pow(a, b);
   
        let count = 0;
        while (p > 0 && count < k) {
   
            // Getting last digit
            let 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
         
        let a = 5, b = 2;
        let k = 1;
        document.write(kthdigit(a, b, k));  
 
</script>


PHP




<?php
// PHP program for finding
// k-th digit in a^b
 
// To compute k-th
// digit in a^b
function kthdigit($a, $b, $k)
{
     
    // computing a^b
    $p = pow($a, $b);
 
    $count = 0;
    while ($p > 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

Time Complexity: O(log p)
Auxiliary Space: O(1)
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.



Last Updated : 07 Jan, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads