How to solve the Power of Three problem using Java

Problem statement

The problem statement is as follows:

Given an integer nn, return true if it is a power of three. Otherwise, return false. An integer n is a power of three if there exists an integer xx such that n==3xn == 3^x.

Below are some examples:

  • Suppose that the input n=27n = 27. The output will be true as 27 is a power of three, i.e., 33=273^{3} = 27.
  • Similarly, if the input n=2n = 2. The output will be false as 2 is not a power of three.

Solution approach

Here we will create a function, isPowerOfThree(), which will take an input integer number as a parameter and return true or false depending on whether the number is a power of three.

class Solution {
public static boolean isPowerOfThree(int n) {
if(n<3)
return false;
while(n%3==0)
{
n/=3;
}
return n==1;
}
public static void main(String[] args){
int n = 27;
if (isPowerOfThree(n))
System.out.println(n + " is a Power of Three.");
else
System.out.println(n + " is not a Power of Three.");
}
}

Explanation:

  • In line 2, we initiate the function isPowerOfThree(int n), which will take an integer as input.
  • In line 3, there is a case that if the number is less than 3, then it will return false because it won’t be a power of 3 then.
  • In lines 6 to 9, we loop and decrease by dividing the integer by 3. We do this until the number is perfectly divided by 3.
  • In line 11, if the number remains 1, then we will return true. Otherwise, we will return false.
  • From lines 13 to 19, we create the main() function, call the isPowerOfThree() function, and print the corresponding message.

In this way, we can solve the Power of Three problem.

Free Resources