maths.special_numbers.evil_number ================================= .. py:module:: maths.special_numbers.evil_number .. autoapi-nested-parse:: == Evil Number == An evil number is a non-negative integer that has an even number of 1s in its binary expansion. Numbers that are not evil are called odious numbers. Examples of evil numbers: 0, 3, 5, 6, 9, 10, 12, 15, 17, 18, 20, 23, 24, 27, ... Reference: https://en.wikipedia.org/wiki/Evil_number Functions --------- .. autoapisummary:: maths.special_numbers.evil_number.is_evil_number Module Contents --------------- .. py:function:: is_evil_number(number: int) -> bool Check if a given number is an evil number. A non-negative integer is evil if the sum of its binary digits (its Hamming weight) is even. :param number: A non-negative integer. :return: True if number is an evil number, False otherwise. >>> is_evil_number(0) True >>> is_evil_number(3) True >>> is_evil_number(5) True >>> is_evil_number(6) True >>> is_evil_number(9) True >>> is_evil_number(1) False >>> is_evil_number(2) False >>> is_evil_number(4) False >>> is_evil_number(7) False >>> is_evil_number(8) False >>> is_evil_number(-1) Traceback (most recent call last): ... ValueError: Input must be a non-negative integer >>> is_evil_number(5.5) Traceback (most recent call last): ... TypeError: Input must be an integer