Check if a number can be expressed as power | Set 2 (Using Log) Last Updated : 14 Jun, 2022 Comments Improve Suggest changes Like Article Like Report Check if a number can be expressed as x^y (x raised to power y) Given a positive integer n, find if it can be expressed as x^y where y > 1 and x > 0. x and y both are integers.Examples : Input: n = 8 Output: true 8 can be expressed as 2^3 Input: n = 49 Output: true 49 can be expressed as 7^2 Input: n = 48 Output: false 48 can't be expressed as x^y We have discussed two different approaches in below post.Check if a number can be expressed as x^y (x raised to power y).The idea is find Log n in different bases from 2 to square root of n. If Log n for a base becomes integer then result is true, else result is false. C++ // CPP program to find if a number // can be expressed as x raised to // power y. #include <bits/stdc++.h> using namespace std; bool isPower(unsigned int n) { // Find Log n in different bases // and check if the value is an // integer for (int x=2; x<=sqrt(n); x++) { float f = log(n) / log(x); if ((f - (int)f) == 0.0) return true; } return false; } // Driver code int main() { for (int i = 2; i < 100; i++) if (isPower(i)) cout << i << " "; return 0; } Java // Java program to find if a number // can be expressed as x raised to // power y. class GFG { static boolean isPower(int n) { // Find Log n in different // bases and check if the // value is an integer for (int x = 2; x <= (int)Math.sqrt(n); x++) { float f = (float)Math.log(n) / (float) Math.log(x); if ((f - (int)f) == 0.0) return true; } return false; } // Driver code public static void main(String args[]) { for (int i = 2; i < 100; i++) if (isPower(i)) System.out.print( i + " "); } } // This code is contributed by Sam007 Python3 # Python3 program to find if a number # can be expressed as x raised to # power y. import math def isPower(n): # Find Log n in different # bases and check if the # value is an integer for x in range(2,int(math.sqrt(n)) + 1): f = math.log(n) / math.log(x); if ((f - int(f)) == 0.0): return True; return False; # Driver code for i in range(2, 100): if (isPower(i)): print(i, end = " "); # This code is contributed by mits C# // C# program to find if a number // can be expressed as x raised to // power y. using System; class GFG { static bool isPower(int n) { // Find Log n in different // bases and check if the // value is an integer for (int x = 2; x <= (int)Math.Sqrt(n); x++) { float f = (float)Math.Log(n) / (float) Math.Log(x); if ((f - (int)f) == 0.0) return true; } return false; } // Driver Code public static void Main() { for (int i = 2; i < 100; i++) if (isPower(i)) Console.Write( i + " "); } } // This code is contributed by Sam007 PHP <?php // PHP program to find if a number // can be expressed as x raised to // power y. function isPower($n) { // Find Log n in different // bases and check if the // value is an integer for ($x = 2; $x <= sqrt($n); $x++) { $f = log($n) / log($x); if (($f - (int)$f) == 0.0) return true; } return false; } // Driver code for ($i = 2; $i < 100; $i++) if (isPower((int)$i)) echo $i." "; // This code is contributed by Sam007 ?> JavaScript <script> // javascript program to find if a number // can be expressed as x raised to // power y. function isPower(n) { // Find Log n in different // bases and check if the // value is an integer for (x = 2; x <= parseInt( Math.sqrt(n)); x++) { var f = Math.log(n) / Math.log(x); if ((f - parseInt( f)) == 0.0) return true; } return false; } // Driver code for (i = 2; i < 100; i++) if (isPower(i)) document.write(i + " "); // This code contributed by Rajput-Ji </script> Output: 4 8 9 16 25 27 32 36 49 64 81 Time Complexity : O(sqrt(N)) Auxiliary Space : O(1) ,as we are not using any extra space Comment More infoAdvertise with us Next Article Check if a number can be expressed as power | Set 2 (Using Log) C coder_11 Follow Improve Article Tags : Mathematical DSA Practice Tags : Mathematical Similar Reads Check if a number can be expressed as a^b | Set 2 You have given a number n. Check if a number can be represented in the form of pow(a, b) (a^b). Examples: Input : 4 Output : Yes 22 = 4 Input : 12 Output : No We have discussed two approaches in Check if a number can be expressed as x^y (x raised to power y). In this post, a more efficient solution 3 min read Check if a number can be expressed as x^y (x raised to power y) Given a positive integer n, find if it can be expressed as xy where y > 1 and x > 0. x and y both are integers. Examples : Input: n = 8 Output: true 8 can be expressed as 23 Input: n = 49 Output: true 49 can be expressed as 72 Input: n = 48 Output: false 48 can't be expressed as xyRecommended 11 min read Check if a number can be expressed as 2^x + 2^y Given a number n, we need to check if it can be expressed as 2x + 2y or not . Here x and y can be equal.Examples : Input : 24 Output : Yes Explanation: 24 can be expressed as 24 + 23 Input : 13 output : No Explanation: It is not possible to express 13 as sum of two powers of 2. If we take few exampl 9 min read Check if a number N can be expressed as the sum of powers of X or not Given two positive numbers N and X, the task is to check if the given number N can be expressed as the sum of distinct powers of X. If found to be true, then print "Yes", Otherwise, print "No". Examples: Input: N = 10, X = 3Output: YesExplanation:The given value of N(= 10) can be written as (1 + 9) 5 min read Check if a number can be expressed as sum of two Perfect powers Given a positive integer n, the task is to check whether n can be expressed in the form of ax + by where x and y > 1 and a and b >= 0. If n can be expressed in the given form then print "Yes", otherwise print "No".Examples:Input: n = 5Output: YesExplanation: 5 can be expressed as 22 + 12 Input 5 min read Like