Tutorialspoint.dev

Find whether a given integer is a power of 3 or not

Given a positive integer, write a function to find if it is a power of three or not.
Examples:

Input : 3
Output :Yes

Input :6
Output :No


The logic is very simple. Any integer number other than power of 3 which divides highest power of 3 value that integer can hold 3^19 = 1162261467 (Assuming that integers are stored using 32 bits) will give reminder non-zero.

C++

// C++ program to check if a number is power
// of 3 or not.
#include <stdio.h>
  
// Returns true if n is power of 3, else false
bool check(int n)
{
    /* The maximum power of 3 value that 
       integer can hold is 1162261467 ( 3^19 ) .*/
    return 1162261467 % n == 0;
}
  
// Driver code
int main()
{
    int n = 9;
    if (check(n))
        printf("Yes");
    else
        printf("No");
  
    return 0;
}

Java

// Java program to check if a number is power
// of 3 or not.
public class Power_3 {
  
    // Returns true if n is power of 3, else false
    static boolean check(int n)
    {
        /* The maximum power of 3 value that 
           integer can hold is 1162261467 ( 3^19 ) .*/
        return 1162261467 % n == 0;
    }
  
    // Driver code
    public static void main(String args[])
    {
        int n = 9;
        if (check(n))
            System.out.println("Yes");
        else
            System.out.println("No");
    }
}
// This code is contributed by Sumit Ghosh

Python

# Python program to check if a number is power
# of 3 or not.
   
# Returns true if n is power of 3, else false
def check(n):
    """ The maximum power of 3 value that 
       integer can hold is 1162261467 ( 3^19 ) ."""
    return 1162261467 % n == 0
   
# Driver code
n = 9
if (check(n)):
    print ("Yes")
else:
    print ("No")
  
# This code is contributed by Sachin Bisht

C#

// C# program to check if a number
// is power of 3 or not.
using System;
  
public class GFG {
  
    // Returns true if n is power
    // of 3, else false
    static bool check(int n)
    {
          
        /* The maximum power of 3
        value that integer can hold
        is 1162261467 ( 3^19 ) .*/
        return 1162261467 % n == 0;
    }
  
    // Driver code
    public static void Main()
    {
        int n = 9;
        if (check(n))
            Console.Write("Yes");
        else
            Console.Write("No");
    }
}
  
// This code is contributed by 
// nitin mittal.

PHP

<?php
// PHP program to check if a 
// number is power of 3 or not.
  
// Returns true if n is 
// power of 3, else false
function check($n)
{
      
    /* The maximum power of 3 value that 
       integer can hold is 1162261467 
       ( 3^19 ) . */
    return 1162261467 % $n == 0;
}
  
    // Driver code
    $n = 9;
    if (check($n))
        echo("Yes");
    else
        echo("No");
  
// This code is contributed by nitin mittal
?>


Output:

Yes

Time Complexity : O(1)

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter