




import torch

from transformers import PreTrainedModel

from .custom_configuration import CustomConfig, NoSuperInitConfig
class      _UpperCamelCase (			lowerCAmelCase						):
						UpperCAmelCase_            =						CustomConfig
						def __init__(     self				:Any	, lowerCamelCase				:int )       ->     List[Any]:
							super().__init__(lowerCamelCase )
							UpperCAmelCase__								=  torch.nn.Linear(config.hidden_size	, config.hidden_size )
						def 		UpperCAmelCase_  (     self				:Any	, lowerCamelCase				:Any )       ->     int:
							return self.linear(lowerCamelCase )







						def 		UpperCAmelCase_  (     self				:Optional[int]	, lowerCamelCase				:Optional[Any] )       ->     Optional[int]:
							pass



class      _UpperCamelCase (			lowerCAmelCase						):
						UpperCAmelCase_            =						NoSuperInitConfig
						def __init__(     self				:Tuple	, lowerCamelCase				:Any )       ->     Dict:
							super().__init__(lowerCamelCase )
							UpperCAmelCase__								=  torch.nn.Linear(config.attribute	, config.attribute )
						def 		UpperCAmelCase_  (     self				:List[Any]	, lowerCamelCase				:List[str] )       ->     Any:
							return self.linear(lowerCamelCase )







						def 		UpperCAmelCase_  (     self				:Union[str, Any]	, lowerCamelCase				:Optional[Any] )       ->     str:
							pass











def   lowerCAmelCase						(						_lowerCAmelCase							:				int  ,							_lowerCAmelCase							:				int		):




 """simple docstring"""







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



def   lowerCAmelCase						(						_lowerCAmelCase							:				int  ,							_lowerCAmelCase							:				int  ,							_lowerCAmelCase							:				int		):




 """simple docstring"""







 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							:				int		):




 """simple docstring"""







 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__":
  _lowerCAmelCase  :				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.''')





