Open In App

Java Program to Calculate Power of a Number

Last Updated : 04 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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));
    }
}


Output

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));
    }
}


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));
    }
}


Output

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);
    }
}


Output

8

Time complexity : O(logb)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads