Given a number N and a power P, the task is to find the exponent of this number raised to the given power, i.e. NP. Examples:
Input: N = 5, P = 2 Output: 25 Input: N = 2, P = 5 Output: 32
Below are the various ways to find NP:
- Method 1: Using RecursionÂ
Java
// Java program to find the power of a number// using RecursionÂ
class GFG {Â
    // Function to calculate N raised to the power P    static int power(int N, int P)    {        if (P == 0)            return 1;        else            return N * power(N, P - 1);    }Â
    // Driver code    public static void main(String[] args)    {        int N = 2;        int P = 3;Â
        System.out.println(power(N, P));    }} |
8
- Method 2: With the help of LoopÂ
Java
// Java program to find the power of a number// with the help of loopÂ
class GFG {Â
    // Function to calculate N raised to the power P    static int power(int N, int P)    {        int pow = 1;        for (int i = 1; i <= P; i++)            pow *= N;        return pow;    }Â
    // Driver code    public static void main(String[] args)    {        int N = 2;        int P = 3;Â
        System.out.println(power(N, P));    }} |
- Method 3: Using Math.pow() methodÂ
Java
// Java program to find the power of a number// using Math.pow() methodÂ
import java.lang.Math;Â
class GFG {Â
    // Function to calculate N raised to the power P    static double power(int N, int P)    {        return Math.pow(N, P);    }Â
    // Driver code    public static void main(String[] args)    {        int N = 2;        int P = 3;Â
        System.out.println(power(N, P));    }} |
8.0
- Method 4 : Efficient Approach
In this approach I am going to calculate power of given base using bit manipulation with logarithmic time complexity
Java
/*java program to calculate of power of given base number */public class GFG {    public static void main(String[] args) {        int base = 2;        int power = 3;        int ans = 1;        while (power > 0){            if ((power&1)==1){               // if == 0 there is no point to calculate ans                ans = ans * base;            }            base = base * base;            // keep dividing power by 2 using right shift            power = power >> 1;        }        System.out.println(ans);    }} |
8
Time complexity : O(logb)
