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)