Given two positive integers **N** and **K**, the task is to find the minimum number to be added to N to make it a power of K.**Examples:**

Input:N = 9, K = 10Output:1Explanation:

9 + 1 = 10 = 10^{1}Input:N = 20, K = 5Output:5Explanation:

20 + 5 = 25 = 5^{2}

**Approach:** The idea to solve this problem is to observe that the minimum power of K which can be formed from N is the next greater power of K. So, the idea is to find the next greater power of K and find the difference between N and this number. The next greater power of K can be found by the formula,

K

^{int(log(N)/log(K)) + 1}

Therefore, the minimum number to be added can be computed by:

Minimum Number = K

^{int(log(N)/log(K)) + 1}– N

Below is the implementation of the above approach:

## C++

`// C++ program to find the minimum number` `// to be added to N to make it a power of K` `#include <bits/stdc++.h>` `#define ll long long int` `using` `namespace` `std;` `// Function to return the minimum number` `// to be added to N to make it a power of K.` `int` `minNum(` `int` `n, ` `int` `k)` `{` ` ` `int` `x = (` `int` `)(` `log` `(n) / ` `log` `(k)) + 1;` ` ` `// Computing the difference between` ` ` `// then next greater power of K` ` ` `// and N` ` ` `int` `mn = ` `pow` `(k, x) - n;` ` ` `return` `mn;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `n = 20, k = 5;` ` ` `cout << minNum(n, k);` ` ` `return` `0;` `}` |

*chevron_right*

*filter_none*

## Java

`// Java program to find the minimum number` `// to be added to N to make it a power of K` `class` `GFG{` ` ` `// Function to return the minimum number` `// to be added to N to make it a power of K.` `static` `int` `minNum(` `int` `n, ` `int` `k)` `{` ` ` `int` `x = (` `int` `)(Math.log(n) / Math.log(k)) + ` `1` `;` ` ` ` ` `// Computing the difference between` ` ` `// then next greater power of K` ` ` `// and N` ` ` `int` `mn = (` `int` `) (Math.pow(k, x) - n);` ` ` `return` `mn;` `}` ` ` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` `int` `n = ` `20` `, k = ` `5` `;` ` ` `System.out.print(minNum(n, k));` `}` `}` `// This code is contributed by Amit Katiyar` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to find the minimum number ` `# to be added to N to make it a power of K ` `import` `math` `# Function to return the minimum number ` `# to be added to N to make it a power of K.` `def` `minNum(n, k):` ` ` ` ` `x ` `=` `int` `((math.log(n) ` `/` `/` `math.log(k))) ` `+` `1` ` ` ` ` `# Computing the difference between ` ` ` `# then next greater power of K ` ` ` `# and N ` ` ` `mn ` `=` `pow` `(k, x) ` `-` `n` ` ` `return` `mn` ` ` `# Driver code ` `if` `__name__` `=` `=` `'__main__'` `:` ` ` ` ` `n ` `=` `20` ` ` `k ` `=` `5` ` ` `print` `(minNum(n, k))` `# This code is contributed by rutvik_56` |

*chevron_right*

*filter_none*

## C#

`// C# program to find the minimum number` `// to be added to N to make it a power of K` `using` `System; ` `class` `GFG{` ` ` `// Function to return the minimum number` `// to be added to N to make it a power of K.` `static` `int` `minNum(` `int` `n, ` `int` `k)` `{` ` ` `int` `x = (` `int` `)(Math.Log(n) / ` ` ` `Math.Log(k)) + 1;` ` ` ` ` `// Computing the difference between` ` ` `// then next greater power of K` ` ` `// and N` ` ` `int` `mn = (` `int` `)(Math.Pow(k, x) - n);` ` ` `return` `mn;` `}` ` ` `// Driver code` `public` `static` `void` `Main(` `string` `[] args)` `{` ` ` `int` `n = 20, k = 5;` ` ` `Console.Write(minNum(n, k));` `}` `}` ` ` `// This code is contributed by Ritik Bansal` |

*chevron_right*

*filter_none*

**Output:**

5

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.