
def        UpperCamelCase    (							lowerCAmelCase__ = 100_0000		):
					'''simple docstring'''
					lowercase							=						set(range(3 ,			lowerCAmelCase__ ,			2		)		)
					primes.add(2		)
					for p in range(3 ,			lowerCAmelCase__ ,			2		):
										if p not in primes:
															continue
										primes.difference_update(set(range(p * p ,			lowerCAmelCase__ ,			lowerCAmelCase__		)		)		)

					lowercase							=						[float(lowerCAmelCase__		) for n in range(limit + 1		)]

					for p in primes:
										for n in range(lowerCAmelCase__ ,			limit + 1 ,			lowerCAmelCase__		):
															phi[n] *= 1 - 1 / p

					return int(sum(phi[2:]		)		)


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






from functools import lru_cache



@lru_cache
def        UpperCamelCase    (							lowerCAmelCase__		):
					'''simple docstring'''
					if num < 0:
										raise ValueError('''Number should not be negative.'''		)

					return 1 if num in (0, 1) else num * factorial(num - 1		)


if __name__ == "__main__":
							import doctest

							doctest.testmod()




