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

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

Examples:

Input : a = 3, b = 3, k = 1 Output : 7Explanation3^3 = 27 for k = 1. First digit is 7 in 27 Input : a = 5, b = 2, k = 2 Output : 2Explanation5^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):` ` ` ` ` `# 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.` |

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