Given positive integers **N** and **K**, the task is to find the highest and smallest power of K greater than equal to and less than equal to N respectively.**Examples:**

Input:N = 3, K = 2Output:2 4

Highest power of 2 less than 3 = 2

Smallest power of 2 greater than 3 = 4Input:N = 6, K = 3Output:3 9

Highest power of 3 less than 6 = 2

Smallest power of 3 greater than 6 = 9

**Approach:**

- Compute the log of N in base K (
**log**) to get the exponential power such that K raised to this exponent is the Highest power of K less than equal to N._{K}N - For the Smallest power of K less than equal to N, find the next power of K computed from the last step

Below is the implementation of the above approach:

## C++

`// C++ implementation of the approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to return the highest power` `// of k less than or equal to n` `int` `prevPowerofK(` `int` `n, ` `int` `k)` `{` ` ` `int` `p = (` `int` `)(` `log` `(n) / ` `log` `(k));` ` ` `return` `(` `int` `)` `pow` `(k, p);` `}` `// Function to return the smallest power` `// of k greater than or equal to n` `int` `nextPowerOfK(` `int` `n, ` `int` `k)` `{` ` ` `return` `prevPowerofK(n, k) * k;` `}` `// Function to print the result` `void` `printResult(` `int` `n, ` `int` `k)` `{` ` ` `cout << prevPowerofK(n, k)` ` ` `<< ` `" "` `<< nextPowerOfK(n, k)` ` ` `<< endl;` `}` `// Driver code` `int` `main()` `{` ` ` `int` `n = 25, k = 3;` ` ` `printResult(n, k);` ` ` `return` `0;` `}` |

## Java

`// Java implementation of the approach` `import` `java.io.*;` `class` `GFG{` `// Function to return the highest power` `// of k less than or equal to n` `static` `int` `prevPowerofK(` `int` `n, ` `int` `k)` `{` ` ` `int` `p = (` `int` `)(Math.log(n) / Math.log(k));` ` ` `return` `(` `int` `) Math.pow(k, p);` `}` `// Function to return the smallest power` `// of k greater than or equal to n` `static` `int` `nextPowerOfK(` `int` `n, ` `int` `k)` `{` ` ` `return` `prevPowerofK(n, k) * k;` `}` `// Function to print the result` `static` `void` `printResult(` `int` `n, ` `int` `k)` `{` ` ` `System.out.println(prevPowerofK(n, k) + ` `" "` `+` ` ` `nextPowerOfK(n, k));` `}` `// Driver Code` `public` `static` `void` `main (String args[])` `{` ` ` `int` `n = ` `25` `, k = ` `3` `;` ` ` `printResult(n, k);` `}` `}` `// This code is contributed by shivanisinghss2110` |

## Python3

`# Python3 implementation of the approach` `import` `math` `# Function to return the highest power` `# of k less than or equal to n` `def` `prevPowerofK(n, k):` ` ` `p ` `=` `int` `(math.log(n) ` `/` `math.log(k))` ` ` `return` `int` `(math.` `pow` `(k, p))` `# Function to return the smallest power` `# of k greater than or equal to n` `def` `nextPowerOfK(n, k):` ` ` `return` `prevPowerofK(n, k) ` `*` `k` `# Function to print the result` `def` `printResult(n, k):` ` ` `print` `(prevPowerofK(n, k), nextPowerOfK(n, k))` `# Driver code` `n ` `=` `6` `k ` `=` `3` `printResult(n, k)` `# This code is contributed by divyamohan123` |

## C#

`// C# implementation of the approach` `using` `System;` `class` `GFG{` `// Function to return the highest power` `// of k less than or equal to n` `static` `int` `prevPowerofK(` `int` `n, ` `int` `k)` `{` ` ` `int` `p = (` `int` `)(Math.Log(n) / Math.Log(k));` ` ` `return` `(` `int` `) Math.Pow(k, p);` `}` `// Function to return the smallest power` `// of k greater than or equal to n` `static` `int` `nextPowerOfK(` `int` `n, ` `int` `k)` `{` ` ` `return` `prevPowerofK(n, k) * k;` `}` `// Function to print the result` `static` `void` `printResult(` `int` `n, ` `int` `k)` `{` ` ` `Console.WriteLine(prevPowerofK(n, k) + ` `" "` `+` ` ` `nextPowerOfK(n, k));` `}` `// Driver Code` `public` `static` `void` `Main(String []args)` `{` ` ` `int` `n = 25, k = 3;` ` ` `printResult(n, k);` `}` `}` `// This code is contributed by gauravrajput1` |

## Javascript

`<script>` `// Javasript implementation of the approach` `// Function to return the highest power` `// of k less than or equal to n` `function` `prevPowerofK(n, k)` `{` ` ` `var` `p = parseInt(Math.log(n) / Math.log(k));` ` ` `return` `parseInt(Math.pow(k, p));` `}` `// Function to return the smallest power` `// of k greater than or equal to n` `function` `nextPowerOfK(n, k)` `{` ` ` `return` `prevPowerofK(n, k) * k;` `}` `// Function to print the result` `function` `printResult(n, k)` `{` ` ` `document.write(prevPowerofK(n, k)` ` ` `+ ` `" "` `+ nextPowerOfK(n, k) + ` `"<br>"` `);` ` ` `}` `// Driver code` `var` `n = 25, k = 3;` `printResult(n, k);` `</script>` |

**Output:**

9 27

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. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend live classes with industry experts, please refer **Geeks Classes Live**