




UpperCamelCase__         =      [sum(int(c, 10) ** 2 for c in i.__str__()) for i in range(100000)]







def      _a				(						SCREAMING_SNAKE_CASE_							:    int					):
					__lowerCAmelCase           =	0
					while number:
										# Increased Speed Slightly by checking every 5 digits together.
										sum_of_digits_squared += DIGITS_SQUARED[number % 10_00_00]
										number //= 10_00_00

					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
UpperCamelCase__         =      [None] * 10000000
UpperCamelCase__         =      True
UpperCamelCase__         =      False







def      _a				(						SCREAMING_SNAKE_CASE_							:    int					):

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

					__lowerCAmelCase           =	chain(next_number(SCREAMING_SNAKE_CASE_					)					)
					__lowerCAmelCase           =	number_chain

					while number < 10_00_00_00:
										__lowerCAmelCase           =	number_chain
										number *= 10

					return number_chain







def      _a				(						SCREAMING_SNAKE_CASE_							:    int = 10_00_00_00					):
					for i in range(1				,				SCREAMING_SNAKE_CASE_					):
										if CHAINS[i] is None:
															chain(i + 1					)

					return CHAINS[:number].count(SCREAMING_SNAKE_CASE_					)


if __name__ == "__main__":
							import doctest

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










from __future__ import annotations







def      _a				(						SCREAMING_SNAKE_CASE_							:    float				,				SCREAMING_SNAKE_CASE_							:    float				,				SCREAMING_SNAKE_CASE_							:    float				,				):
					if (electron_conc, hole_conc, intrinsic_conc).count(0					) != 1:
										raise ValueError("You cannot supply more or less than 2 values"					)
					elif electron_conc < 0:
										raise ValueError("Electron concentration cannot be negative in a semiconductor"					)
					elif hole_conc < 0:
										raise ValueError("Hole concentration cannot be negative in a semiconductor"					)
					elif intrinsic_conc < 0:
										raise ValueError(
										    "Intrinsic concentration cannot be negative in a semiconductor"					)
					elif electron_conc == 0:
										return (
										    "electron_conc",
										    intrinsic_conc**2 / hole_conc,
										)
					elif hole_conc == 0:
										return (
										    "hole_conc",
										    intrinsic_conc**2 / electron_conc,
										)
					elif intrinsic_conc == 0:
										return (
										    "intrinsic_conc",
										    (electron_conc * hole_conc) ** 0.5,
										)
					else:
										return (-1, -1)


if __name__ == "__main__":
					import doctest

					doctest.testmod()




