

from __future__ import annotations

from math import pi

def 		UpperCamelCase      (lowercase_:				float					,   lowercase_:				float					,   lowercase_:				float      )  ->   dict[str, float]:

	if (inductance, frequency, reactance).count(0      ) != 1:
		raise ValueError("""One and only one argument must be 0"""      )
	if inductance < 0:
		raise ValueError("""Inductance cannot be negative"""      )
	if frequency < 0:
		raise ValueError("""Frequency cannot be negative"""      )
	if reactance < 0:
		raise ValueError("""Inductive reactance cannot be negative"""      )
	if inductance == 0:
		return {"inductance": reactance / (2 * pi * frequency)}
	elif frequency == 0:
		return {"frequency": reactance / (2 * pi * inductance)}
	elif reactance == 0:
		return {"reactance": 2 * pi * frequency * inductance}
	else:
		raise ValueError("""Exactly one argument must be 0"""      )


if __name__ == "__main__":
	import doctest

	doctest.testmod()






from functools import lru_cache

@lru_cache
def 		UpperCamelCase      (lowercase_:				int      )  ->   int:
	if num < 0:
		raise ValueError("""Number should not be negative."""      )

	return 1 if num in (0, 1) else num * factorial(num - 1      )


if __name__ == "__main__":
	import doctest

	doctest.testmod()



