Skip to content
Related Articles

Related Articles

K-th digit in ‘a’ raised to power ‘b’
  • Difficulty Level : Easy
  • Last Updated : 08 Apr, 2021
GeeksforGeeks - Summer Carnival Banner

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

 

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):
     
    # 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




<?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.
?>

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>

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.
 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up
Recommended Articles
Page :