https www tutorialspoint compython3bitwiseoperatorsexample htm take in 2 integers convert them to binary and return a binary number that is the result of a binary or operation on the integers provided binaryor25 32 0b111001 binaryor37 50 0b110111 binaryor21 30 0b11111 binaryor58 73 0b1111011 binaryor0 255 0b11111111 binaryor0 256 0b100000000 binaryor0 1 traceback most recent call last valueerror the value of both inputs must be positive binaryor0 1 1 traceback most recent call last typeerror float object cannot be interpreted as an integer binaryor0 1 traceback most recent call last typeerror not supported between instances of str and int https www tutorialspoint com python3 bitwise_operators_example htm take in 2 integers convert them to binary and return a binary number that is the result of a binary or operation on the integers provided binary_or 25 32 0b111001 binary_or 37 50 0b110111 binary_or 21 30 0b11111 binary_or 58 73 0b1111011 binary_or 0 255 0b11111111 binary_or 0 256 0b100000000 binary_or 0 1 traceback most recent call last valueerror the value of both inputs must be positive binary_or 0 1 1 traceback most recent call last typeerror float object cannot be interpreted as an integer binary_or 0 1 traceback most recent call last typeerror not supported between instances of str and int remove the leading 0b
def binary_or(a: int, b: int) -> str:
    
    if a < 0 or b < 0:
        raise ValueError("the value of both inputs must be positive")
    a_binary = str(bin(a))[2:]  
    b_binary = str(bin(b))[2:]
    max_len = max(len(a_binary), len(b_binary))
    return "0b" + "".join(
        str(int("1" in (char_a, char_b)))
        for char_a, char_b in zip(a_binary.zfill(max_len), b_binary.zfill(max_len))
    )


if __name__ == "__main__":
    import doctest

    doctest.testmod()