bit_manipulation.power_of_4 =========================== .. py:module:: bit_manipulation.power_of_4 .. autoapi-nested-parse:: Task: Given a positive int number. Return True if this number is power of 4 or False otherwise. Implementation notes: Use bit manipulation. For example if the number is the power of 2 it's bits representation: n = 0..100..00 n - 1 = 0..011..11 n & (n - 1) - no intersections = 0 If the number is a power of 4 then it should be a power of 2 and the set bit should be at an odd position. Functions --------- .. autoapisummary:: bit_manipulation.power_of_4.power_of_4 Module Contents --------------- .. py:function:: power_of_4(number: int) -> bool Return True if this number is power of 4 or False otherwise. >>> power_of_4(0) Traceback (most recent call last): ... ValueError: number must be positive >>> power_of_4(1) True >>> power_of_4(2) False >>> power_of_4(4) True >>> power_of_4(6) False >>> power_of_4(8) False >>> power_of_4(17) False >>> power_of_4(64) True >>> power_of_4(-1) Traceback (most recent call last): ... ValueError: number must be positive >>> power_of_4(1.2) Traceback (most recent call last): ... TypeError: number must be an integer