





def    A				(							UpperCAmelCase = 600_851_475_143				):

					try:
										_snake_case       :					Dict				       =   int(__UpperCamelCase				)
					except (TypeError, ValueError):
										raise TypeError("Parameter n must be int or castable to int."				)
					if n <= 0:
										raise ValueError("Parameter n must be greater than or equal to one."				)
					_snake_case       :					Any				       =   1
					_snake_case       :					List[str]				       =   2
					while i * i <= n:
										while n % i == 0:
															_snake_case       :					Tuple				       =   i
															n //= i
										i += 1
					if n > 1:
										_snake_case       :					List[str]				       =   n
					return int(__UpperCamelCase				)


if __name__ == "__main__":
							print(F'''{solution() = }''')












def    A				(							UpperCAmelCase				):
					return str(UpperCAmelCase				) == str(UpperCAmelCase				)[::-1]







def    A				(							UpperCAmelCase				):
					return int(UpperCAmelCase				) + int(str(UpperCAmelCase				)[::-1]				)







def    A				(							UpperCAmelCase = 10_000				):
					_snake_case       :					Optional[int]				       =   []
					for num in range(1  ,  UpperCAmelCase				):
										_snake_case       :					Optional[Any]				       =   0
										_snake_case       :					Optional[int]				       =   num
										while iterations < 50:
															_snake_case       :					Optional[Any]				       =   sum_reverse(UpperCAmelCase				)
															iterations += 1
															if is_palindrome(UpperCAmelCase				):
																				break
										else:
															lychrel_nums.append(UpperCAmelCase				)
					return len(UpperCAmelCase				)


if __name__ == "__main__":
							print(F'''{solution() = }''')