Find whether a given integer is a power of 3 or not in C++


In this problem, we are given an integer N. Our task is to find whether a given integer is a power of 3 or not.

Let's take an example to understand the problem,

Input : N = 729
Output : Yes

Explanation

36 = 719

Solution Approach

A solution to the problem is by checking for the value that is power of 3. We will check if the given number N divides 1162261467 (319). If it is a power of 3, the remainder with be 0 i.e. N will divide it. If it does not, the number is not the power of 3.

Example

Program to illustrate the working of our solution

#include <iostream>
using namespace std;
bool isPowerOf3(int n){
   if (n <= 0)
      return false;
   return 1162261467 % n == 0;
}
int main(){
   int n = 27;
   if (isPowerOf3(n))
      cout<<"The number is a power of 3";
   else
      cout<<"The number is not a power of 3";
   return 0;
}

Output

The number is a power of 3

Updated on: 01-Feb-2022

569 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements