
"""simple docstring"""


def        lowerCAmelCase_       (		snake_case_		:      int      )       ->int:
			if number != int(snake_case_      ):
						raise ValueError('factorial() only accepts integral values'      )
			if number < 0:
						raise ValueError('factorial() not defined for negative values'      )
			lowerCamelCase__     :					Optional[Any]		=1
			for i in range(1							,   number + 1      ):
						value *= i
			return value






def        lowerCAmelCase_       (		snake_case_		:      int      )       ->int:
			if not isinstance(snake_case_							,   snake_case_      ):
						raise ValueError('factorial() only accepts integral values'      )
			if n < 0:
						raise ValueError('factorial() not defined for negative values'      )
			return 1 if n == 0 or n == 1 else n * factorial(n - 1      )


if __name__ == "__main__":
							import doctest

							doctest.testmod()

							lowerCAmelCase								=						int(input("""Enter a positive integer: """).strip() or 0)
							print(f"""factorial{n} is {factorial(n)}""")

"""simple docstring"""


from math import cos, sin






def        lowerCAmelCase_       (		snake_case_		:      float      )       ->list[list[float]]:
			lowerCamelCase__     :					List[Any]		=float(snake_case_      )
			return [[scaling_factor * int(x == y      ) for x in range(2      )] for y in range(2      )]






def        lowerCAmelCase_       (		snake_case_		:      float      )       ->list[list[float]]:
			lowerCamelCase__	,    lowerCamelCase__     :					Union[str, Any]		=cos(snake_case_      ), sin(snake_case_      )
			return [[c, -s], [s, c]]






def        lowerCAmelCase_       (		snake_case_		:      float      )       ->list[list[float]]:
			lowerCamelCase__	,    lowerCamelCase__     :					Optional[Any]		=cos(snake_case_      ), sin(snake_case_      )
			lowerCamelCase__     :					Dict		=c * s
			return [[c * c, cs], [cs, s * s]]






def        lowerCAmelCase_       (		snake_case_		:      float      )       ->list[list[float]]:
			lowerCamelCase__	,    lowerCamelCase__     :					str		=cos(snake_case_      ), sin(snake_case_      )
			lowerCamelCase__     :					Dict		=c * s
			return [[2 * c - 1, 2 * cs], [2 * cs, 2 * s - 1]]


print(f"""    {scaling(5) = }""")
print(f"""  {rotation(45) = }""")
print(f"""{projection(45) = }""")

print(f"""{reflection(45) = }""")