Skip to content

Commit 09f27a6

Browse files
authored
Create is_power_of_four.py
1 parent e2a78d4 commit 09f27a6

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

maths/is_power_of_four.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"""
2+
Check if an integer is a power of four.
3+
4+
Time Complexity: O(log₄ n)
5+
Space Complexity: O(1)
6+
"""
7+
8+
def is_power_of_four(n: int) -> bool:
9+
"""Return True if n is a power of four (n > 0).
10+
11+
>>> is_power_of_four(1)
12+
True
13+
>>> is_power_of_four(4)
14+
True
15+
>>> is_power_of_four(16)
16+
True
17+
>>> is_power_of_four(64)
18+
True
19+
>>> is_power_of_four(8)
20+
False
21+
>>> is_power_of_four(0)
22+
False
23+
>>> is_power_of_four(-4)
24+
False
25+
"""
26+
if not isinstance(n, int):
27+
raise TypeError("n must be an integer")
28+
if n <= 0:
29+
return False
30+
while n % 4 == 0:
31+
n //= 4
32+
return n == 1
33+
34+
35+
if __name__ == "__main__":
36+
import doctest
37+
doctest.testmod()

0 commit comments

Comments
 (0)