take in 1 integer return a number that is the number of trailing zeros in binary representation of that number binarycounttrailingzeros25 0 binarycounttrailingzeros36 2 binarycounttrailingzeros16 4 binarycounttrailingzeros58 1 binarycounttrailingzeros4294967296 32 binarycounttrailingzeros0 0 binarycounttrailingzeros10 traceback most recent call last valueerror input value must be a positive integer binarycounttrailingzeros0 8 traceback most recent call last typeerror input value must be a int type binarycounttrailingzeros0 traceback most recent call last typeerror not supported between instances of str and int take in 1 integer return a number that is the number of trailing zeros in binary representation of that number binary_count_trailing_zeros 25 0 binary_count_trailing_zeros 36 2 binary_count_trailing_zeros 16 4 binary_count_trailing_zeros 58 1 binary_count_trailing_zeros 4294967296 32 binary_count_trailing_zeros 0 0 binary_count_trailing_zeros 10 traceback most recent call last valueerror input value must be a positive integer binary_count_trailing_zeros 0 8 traceback most recent call last typeerror input value must be a int type binary_count_trailing_zeros 0 traceback most recent call last typeerror not supported between instances of str and int
from math import log2


def binary_count_trailing_zeros(a: int) -> int:
    
    if a < 0:
        raise ValueError("Input value must be a positive integer")
    elif isinstance(a, float):
        raise TypeError("Input value must be a 'int' type")
    return 0 if (a == 0) else int(log2(a & -a))


if __name__ == "__main__":
    import doctest

    doctest.testmod()