






def 				_lowerCAmelCase      (_lowerCAmelCase				,		_lowerCAmelCase):
					if a < b:
										return gcd(_lowerCAmelCase				,		_lowerCAmelCase)
					if a % b == 0:
										return b
					return gcd(_lowerCAmelCase				,		a % b)



def 				_lowerCAmelCase      (_lowerCAmelCase				,		_lowerCAmelCase				,		_lowerCAmelCase):
					if y == 0:
										return 1
					UpperCamelCase_											=				power(_lowerCAmelCase				,		y // 2				,		_lowerCAmelCase) % mod
					UpperCamelCase_											=				(temp * temp) % mod
					if y % 2 == 1:
										UpperCamelCase_											=				(temp * x) % mod
					return temp



def 				_lowerCAmelCase      (_lowerCAmelCase):
					UpperCamelCase_											=				2
					while b < n:
										if gcd(_lowerCAmelCase				,		_lowerCAmelCase) == 1 and power(_lowerCAmelCase				,		n - 1				,		_lowerCAmelCase) != 1:
															return False
										b += 1
					return True


if __name__ == "__main__":
	UpperCAmelCase				:							str								=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.")





from typing import Literal

UpperCAmelCase				:							Tuple								="""ABCDEFGHIJKLMNOPQRSTUVWXYZ"""



def 				_lowerCAmelCase      (_lowerCAmelCase				,		_lowerCAmelCase				,		_lowerCAmelCase):
					UpperCamelCase_											=				LETTERS if mode == "decrypt" else key
					UpperCamelCase_											=				key if mode == "decrypt" else LETTERS
					UpperCamelCase_											=				""
					# loop through each symbol in the message
					for symbol in message:
										if symbol.upper() in chars_a:
															# encrypt/decrypt the symbol
															UpperCamelCase_											=				chars_a.find(symbol.upper())
															if symbol.isupper():
																				translated += chars_b[sym_index].upper()
															else:
																				translated += chars_b[sym_index].lower()
										else:
															# symbol is not in LETTERS, just add it
															translated += symbol
					return translated



def 				_lowerCAmelCase      (_lowerCAmelCase				,		_lowerCAmelCase):
					return translate_message(_lowerCAmelCase				,		_lowerCAmelCase				,		"encrypt")



def 				_lowerCAmelCase      (_lowerCAmelCase				,		_lowerCAmelCase):
					return translate_message(_lowerCAmelCase				,		_lowerCAmelCase				,		"decrypt")



def 				_lowerCAmelCase      ():
					UpperCamelCase_											=				"Hello World"
					UpperCamelCase_											=				"QWERTYUIOPASDFGHJKLZXCVBNM"
					UpperCamelCase_											=				"decrypt"  # set to 'encrypt' or 'decrypt'

					if mode == "encrypt":
										UpperCamelCase_											=				encrypt_message(_lowerCAmelCase				,		_lowerCAmelCase)
					elif mode == "decrypt":
										UpperCamelCase_											=				decrypt_message(_lowerCAmelCase				,		_lowerCAmelCase)
					print(f"""Using the key {key}, the {mode}ed message is: {translated}""")


if __name__ == "__main__":
	import doctest

	doctest.testmod()
	main()
