


def 							UpperCamelCase_  (				__snake_case			:						int	,			__snake_case			:						int     )->      int:




						'''simple docstring'''
						if a < b:
												return gcd(__snake_case	,			__snake_case     )
						if a % b == 0:
												return b
						return gcd(__snake_case	,			a % b     )
def 							UpperCamelCase_  (				__snake_case			:						int	,			__snake_case			:						int	,			__snake_case			:						int     )->      int:




						'''simple docstring'''
						if y == 0:
												return 1
						__magic_name__ 		=			power(__snake_case	,			y // 2	,			__snake_case     ) % mod
						__magic_name__ 		=			(temp * temp) % mod
						if y % 2 == 1:
												__magic_name__ 		=			(temp * x) % mod
						return temp
def 							UpperCamelCase_  (				__snake_case			:						int     )->      bool:




						'''simple docstring'''
						__magic_name__ 		=			2
						while b < n:
												if gcd(__snake_case	,			__snake_case     ) == 1 and power(__snake_case	,			n - 1	,			__snake_case     ) != 1:
																		return False
												b += 1
						return True


if __name__ == "__main__":
					UpperCamelCase :				Dict						    =       int(input('''Enter number: ''').strip())
					if is_carmichael_number(number):
										print(f'''{number} is a Carmichael Number.''')
					else:
										print(f'''{number} is not a Carmichael Number.''')





def 							UpperCamelCase_  (				__snake_case			:						int     )->      bool:




						'''simple docstring'''
						if not isinstance(__snake_case	,			__snake_case     ):
												__magic_name__ 		=			F'''Input value of [number={number}] must be an integer'''
												raise TypeError(__snake_case     )
						if number < 0 or number % 2 == 1:
												return False
						__magic_name__ 		=			int(number**0.5     )
						return number == number_sqrt * (number_sqrt + 1)


if __name__ == "__main__":
					import doctest

					doctest.testmod()

