
_lowerCamelCase					   =[sum(int(c, 1_0) ** 2 for c in i.__str__()) for i in range(1_0_0_0_0_0)]





def     _a					(						lowerCamelCase							):
 lowerCamelCase		:	List[Any]							=      0
 while number:
  # Increased Speed Slightly by checking every 5 digits together.
  sum_of_digits_squared += DIGITS_SQUARED[number % 10_0000]
  number //= 10_0000

 return sum_of_digits_squared


# There are 2 Chains made,
# One ends with 89 with the chain member 58 being the one which when declared first,
# there will be the least number of iterations for all the members to be checked.

# The other one ends with 1 and has only one element 1.

# So 58 and 1 are chosen to be declared at the starting.

# Changed dictionary to an array to quicken the solution
_lowerCamelCase					   =[None] * 1_0_0_0_0_0_0_0
_lowerCamelCase					   =True
_lowerCamelCase					   =False





def     _a					(						lowerCamelCase							):

 if CHAINS[number - 1] is not None:
  return CHAINS[number - 1]  # type: ignore

 lowerCamelCase		:	Tuple							=      chain(next_number(lowerCamelCase							)							)
 lowerCamelCase		:	Dict							=      number_chain

 while number < 1000_0000:
  lowerCamelCase		:	Optional[int]							=      number_chain
  number *= 10

 return number_chain





def     _a					(						lowerCamelCase = 1000_0000							):
 for i in range(1,	lowerCamelCase							):
  if CHAINS[i] is None:
   chain(i + 1							)

 return CHAINS[:number].count(lowerCamelCase							)


if __name__ == "__main__":
      import doctest

      doctest.testmod()
      print(f'''{solution() = }''')






def     _a					(						lowerCamelCase							):

 if p < 2:
  raise ValueError("""p should not be less than 2!"""							)
 elif p == 2:
  return True

 lowerCamelCase		:	Any							=      4
 lowerCamelCase		:	List[str]							=      (1 << p) - 1
 for _ in range(p - 2							):
  lowerCamelCase		:	List[Any]							=      ((s * s) - 2) % m
 return s == 0


if __name__ == "__main__":
      print(lucas_lehmer_test(7))
      print(lucas_lehmer_test(1_1))




