




import unittest

from transformers import is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow, torch_device


if is_torch_available():
							import torch

							from transformers import CamembertModel


@require_torch
@require_sentencepiece
@require_tokenizers
class 							__SCREAMING_SNAKE_CASE				(						unittest.TestCase    ):

					@slow
					def       lowercase_				(							self   ):







						'''simple docstring'''




						lowerCamelCase_				:						List[str]				  =				CamembertModel.from_pretrained('camembert-base'   )
						model.to(__lowercase   )

						lowerCamelCase_				:						Union[str, Any]				  =				torch.tensor(
						    [[5, 121, 11, 660, 16, 730, 25_543, 110, 83, 6]]					,			device=__lowercase					,			dtype=torch.long					,			)  # J'aime le camembert !
						with torch.no_grad():
							lowerCamelCase_				:						Optional[Any]				  =				model(__lowercase   )['last_hidden_state']
						lowerCamelCase_				:						List[str]				  =				torch.Size((1, 10, 768)   )
						self.assertEqual(output.shape					,			__lowercase   )
						# compare the actual values for a slice.
						lowerCamelCase_				:						List[Any]				  =				torch.tensor(
						    [[[-0.02_54, 0.02_35, 0.10_27], [0.06_06, -0.18_11, -0.04_18], [-0.15_61, -0.11_27, 0.26_87]]]					,			device=__lowercase					,			dtype=torch.float					,			)
						# camembert = torch.hub.load('pytorch/fairseq', 'camembert.v0')
						# camembert.eval()
						# expected_slice = roberta.model.forward(input_ids)[0][:, :3, :3].detach()

						self.assertTrue(torch.allclose(output[:, :3, :3]					,			__lowercase					,			atol=1E-4   )   )






def    snake_case   (				A		,  A     )				->				int:




	'''simple docstring'''


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






def    snake_case   (				A		,  A		,  A     )				->				int:




	'''simple docstring'''


	if y == 0:
		return 1
	lowerCamelCase_				:						int				  =				power(A		,  y // 2		,  A     ) % mod
	lowerCamelCase_				:						List[Any]				  =				(temp * temp) % mod
	if y % 2 == 1:
		lowerCamelCase_				:						str				  =				(temp * x) % mod
	return temp






def    snake_case   (				A     )				->				bool:




	'''simple docstring'''


	lowerCamelCase_				:						Union[str, Any]				  =				2
	while b < n:
		if gcd(A		,  A     ) == 1 and power(A		,  n - 1		,  A     ) != 1:
			return False
		b += 1
	return True


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