Problem statement:
Write a Python, C/C++ program to check if the given number is the power of 3 (k- any other integer number).
Example:
The numbers which are the power of three: 3 (3^1), 9 (3^2), 27 (3^3), 81 (3^4), etc. The numbers which are not the power of three: 2, 4, 5, 6, 18.
Note: Some number that is divisible by three not necessarily to be the power of three. Example: 18, 36
Algorithm:
Prerequisite:
Python Program:
[python]
def isPowerOf(n, k):
if n==k or n==1:
return True
n=n/k
if not n.is_integer():
return False
else:
return isPowerOf(n, k)
#check the numbers
print(isPowerOf(10, 3))
print(isPowerOf(15, 2))
print(isPowerOf(64, 4))
print(isPowerOf(27, 3))
print(isPowerOf(81, 3))
[/python]
Output:
False False True True True
You can also take the ‘n’ and ‘k’ values as user input in Python.
Prerequisite:
C/C++ Program:
[cpp]
#include <stdio.h>
#define TRUE 1
#define FALSE 0
int isPowerOf(int n, int k)
{
if(n==k || n==1)
return(TRUE);
if(n%k)
return(FALSE);
else
return isPowerOf(n/k, k);
}
//driver function for testing
void testFunction(int n, int k)
{
int out = isPowerOf(n, k);
if(out)
printf("%d is power of %d\n", n, k);
else
printf("%d is not power of %d\n", n, k);
}
void main()
{
testFunction(10, 3);
testFunction(15, 2);
testFunction(64, 4);
testFunction(27, 3);
testFunction(81, 3);
}
[/cpp]
Output:
10 is not power of 3 15 is not power of 2 64 is power of 4 27 is power of 3 81 is power of 3
This is one of the most common coding questions asked in a placement interview. Try to solve these different programming languages like Python, C/C++, Java. The logic remains the same.