From 5199e18531afe2a43ffff81f36fb0a552c997373 Mon Sep 17 00:00:00 2001 From: Melove Gupta Date: Tue, 21 Oct 2025 19:18:09 +0530 Subject: [PATCH 1/2] Create power_of_two.py --- maths/power_of_two.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 maths/power_of_two.py diff --git a/maths/power_of_two.py b/maths/power_of_two.py new file mode 100644 index 000000000000..11f0035e5a15 --- /dev/null +++ b/maths/power_of_two.py @@ -0,0 +1,29 @@ +""" +Check if an integer is a power of two. + +Time Complexity: O(1) +Space Complexity: O(1) +""" + +def is_power_of_two(n: int) -> bool: + """Return True if n is a power of two (n > 0). + + >>> is_power_of_two(1) + True + >>> is_power_of_two(2) + True + >>> is_power_of_two(3) + False + >>> is_power_of_two(0) + False + >>> is_power_of_two(-4) + False + """ + if not isinstance(n, int): + raise TypeError("n must be an integer") + return n > 0 and (n & (n - 1)) == 0 + + +if __name__ == "__main__": + import doctest + doctest.testmod() From 1621d873222a504e0ed2d76b673c0eff56b11692 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 13:51:07 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- maths/power_of_two.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/maths/power_of_two.py b/maths/power_of_two.py index 11f0035e5a15..bcd31a77143b 100644 --- a/maths/power_of_two.py +++ b/maths/power_of_two.py @@ -5,6 +5,7 @@ Space Complexity: O(1) """ + def is_power_of_two(n: int) -> bool: """Return True if n is a power of two (n > 0). @@ -26,4 +27,5 @@ def is_power_of_two(n: int) -> bool: if __name__ == "__main__": import doctest + doctest.testmod()