Power in Mathematics

The power of a number says how many times to use the number in a multiplication. Powers are also called Exponents or Indices. For example, 8^2 could be called “8 to the power 2” or “8 to the second power”, or simply “8 squared”.

Some interesting fact about Power :

  1. If the indices is 1, then you just have the number itself. For example, 5^1 = 5
  2. If the indices is 0, then you get 1. For example, 5^0 = 1
  3. Exponents make it easier to write and use many multiplications
  4. Negative exponent means how many times to divide one by the number.For example, 5^-1 = 1 /5 = 0.2

How we check if a number is power of y for a given integer x ?



Naive solution:
Given two positive numbers x and y, check if y is a power of x or not.

Examples :

Input:  x = 10, y = 1
Output: True

Input:  x = 10, y = 1000
Output: True

Input:  x = 10, y = 1001
Output: False

Approach : A simple solution is to repeatedly compute powers of x. If a power becomes equal to y, then y is a power, else not.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to check if a number is power of
// another number
#include <bits/stdc++.h>
using namespace std;
  
/* Returns 1 if y is a power of x */
bool isPower(int x, long int y)
{
    // The only power of 1 is 1 itself
    if (x == 1)
        return (y == 1);
  
    // Repeatedly comput power of x
    long int pow = 1;
    while (pow < y)
        pow *= x;
  
    // Check if power of x becomes y
    return (pow == y);
}
  
/* Driver program to test above function */
int main()
{
    cout << (isPower(10, 1) ? "True" : "False") << endl;
    cout << (isPower(1, 20) ? "True" : "False") << endl;
    cout << (isPower(2, 128) ? "True" : "False") << endl;
    cout << (isPower(2, 30) ? "True" : "False") << endl;
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to check if a number is power of
// another number
public class Test {
  
    // driver method to test power method
    public static void main(String[] args)
    {
        // check the result for true/false and print.
        System.out.println(isPower(10, 1) ? "True" : "False");
        System.out.println(isPower(1, 20) ? "True" : "False");
        System.out.println(isPower(2, 128) ? "True" : "False");
        System.out.println(isPower(2, 30) ? "True" : "False");
    }
  
    /* Returns true if y is a power of x */
    public static boolean isPower(int x, int y)
    {
        // The only power of 1 is 1 itself
        if (x == 1)
            return (y == 1);
  
        // Repeatedly compute power of x
        int pow = 1;
        while (pow < y)
            pow = pow * x;
  
        // Check if power of x becomes y
        return (pow == y);
    }
}

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to check
# if a number is power of
# another number
  
# Returns true if y is a
# power of x 
def isPower (x, y):
      
    # The only power of 1
    # is 1 itself
    if (x == 1):
        return (y == 1)
          
    # Repeatedly compute
    # power of x
    pow = 1
    while (pow < y):
        pow = pow * x
  
    # Check if power of x
    # becomes y
    return (pow == y)
      
      
# Driver Code
# check the result for
# true/false and print.
if(isPower(10, 1)): print("True")
else: print("False")
  
if(isPower(1, 20)): print("True")
else: print("False")
  
if(isPower(2, 128)): print("True")
else: print("False")
  
if(isPower(2, 30)): print("True")
else: print("False")
     

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to check if a number 
// is power of another number
using System;
  
class GFG
{
      
    // Returns true if y is a power of x 
    public static bool isPower (int x, int y)
    {
        // The only power of 1 is 1 itself
        if (x == 1)
        return (y == 1);
  
        // Repeatedly compute power of x
        int pow = 1;
        while (pow < y)
        pow = pow * x;
  
        // Check if power of x becomes y
        return (pow == y);
    }
      
    // Driver Code
    public static void Main ()
    {
        //check the result for true/false and print.
        Console.WriteLine(isPower(10, 1) ? "True" : "False");
        Console.WriteLine(isPower(1, 20) ? "True" : "False");
        Console.WriteLine(isPower(2, 128) ? "True" : "False");
        Console.WriteLine(isPower(2, 30) ? "True" : "False");
    }
      
}

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to check if a 
// number is power of another number
  
/* Returns 1 if y is a power of x */
function isPower($x, $y)
{
    // The only power of 1 is 1 itself
    if ($x == 1)
        return ($y == 1 ? "True" : "False");
  
    // Repeatedly comput power of x
    $pow = 1;
    while ($pow < $y)
        $pow *= $x;
  
    // Check if power of x becomes y
    return ($pow == $y ? "True" : "False");
}
  
// Driver Code
echo isPower(10, 1) . "\n";
echo isPower(1, 20) . "\n";
echo isPower(2, 128) . "\n";
echo isPower(2, 30) . "\n";
  
?>

chevron_right


Output:

True
False
True
False

Time complexity of above solution is O(Logxy)

Basic Program related to Power :

More problems related to Powers :

Recent Articles on Power!



My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.