Sponsored
Sponsored
This approach leverages the fact that if a number n
is a power of three, it should be divisible by 3 repeatedly until it becomes 1. If at any step, n
is not divisible by 3 and it's greater than 1, it cannot be a power of three.
Time Complexity: O(log n)
Space Complexity: O(1)
1def isPowerOfThree(n: int) -> bool:
2 if n < 1:
3 return False
4 while n % 3 == 0:
5 n //= 3
6 return n == 1
The Python function checks divisibility by 3 until n
becomes 1 or stops being divisible by 3, indicating it's not a power of 3.
This approach uses logarithms to determine if a number is a power of three. By taking the logarithm of the number and comparing it to the logarithm base 3, we can check if they form an integer ratio.
Time Complexity: O(1)
Space Complexity: O(1)
1import math
2
In Python, this function calculates logarithms and uses the is_integer()
method to verify if we have an integer result, suggesting n
is a power of three.