






def    __magic_name__    (	SCREAMING_SNAKE_CASE     ,     SCREAMING_SNAKE_CASE				)     ->    str:
							if a < 0 or b < 0:
														raise ValueError('the value of both inputs must be positive'				)

							_lowercase							:   str 							=   str(bin(SCREAMING_SNAKE_CASE				)				)[2:]  # remove the leading "0b"
							_lowercase							:   int 							=   str(bin(SCREAMING_SNAKE_CASE				)				)[2:]  # remove the leading "0b"

							_lowercase							:   List[Any] 							=   max(len(SCREAMING_SNAKE_CASE				)     ,     len(SCREAMING_SNAKE_CASE				)				)

							return "0b" + "".join(
							    str(int(char_a == '1' and char_b == '1'				)				)
							    for char_a, char_b in zip(a_binary.zfill(SCREAMING_SNAKE_CASE				)     ,     b_binary.zfill(SCREAMING_SNAKE_CASE				)				)				)


if __name__ == "__main__":
							import doctest

							doctest.testmod()









'''simple docstring'''

from __future__ import annotations

SCREAMING_SNAKE_CASE__     :						List[Any]	=  1.6021e-19  # units = C






def 				a  (     UpperCamelCase_    :    float      ,					UpperCamelCase_    :    float      ,					UpperCamelCase_    :    float      ,					)       ->	tuple[str, float]:
		if (conductivity, electron_conc, mobility).count(0			) != 1:
				raise ValueError('You cannot supply more or less than 2 values'			)
		elif conductivity < 0:
				raise ValueError('Conductivity cannot be negative'			)
		elif electron_conc < 0:
				raise ValueError('Electron concentration cannot be negative'			)
		elif mobility < 0:
				raise ValueError('mobility cannot be negative'			)
		elif conductivity == 0:
				return (
				    "conductivity",
				    mobility * electron_conc * ELECTRON_CHARGE,
				)
		elif electron_conc == 0:
				return (
				    "electron_conc",
				    conductivity / (mobility * ELECTRON_CHARGE),
				)
		else:
				return (
				    "mobility",
				    conductivity / (electron_conc * ELECTRON_CHARGE),
				)


if __name__ == "__main__":
			import doctest

			doctest.testmod()




