




'''simple docstring'''





def 					UpperCamelCase_(     snake_case							:	int = 1_0_0_0_0_0_0					):

							'''simple docstring'''






							snake_case_      =				set(range(3							,    snake_case							,    2					)					)
							primes.add(2					)
							for p in range(3							,    snake_case							,    2					):
														if p not in primes:
																					continue
														primes.difference_update(set(range(p * p							,    snake_case							,    snake_case					)					)					)

							snake_case_      =				[float(snake_case					) for n in range(limit + 1					)]

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

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


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










'''simple docstring'''





def 					UpperCamelCase_(     snake_case							:	list[int]							,    snake_case							:	int					):

							'''simple docstring'''






							snake_case_      =				len(snake_case					)
							snake_case_      =				[[False] * (required_sum + 1) for _ in range(arr_len + 1					)]

							# for each arr value, a sum of zero(0) can be formed by not taking any element
							# hence True/1
							for i in range(arr_len + 1					):
														snake_case_      =				True

							# sum is not zero and set is empty then false
							for i in range(1							,    required_sum + 1					):
														snake_case_      =				False

							for i in range(1							,    arr_len + 1					):
														for j in range(1							,    required_sum + 1					):
																					if arr[i - 1] > j:
																												snake_case_      =				subset[i - 1][j]
																					if arr[i - 1] <= j:
																												snake_case_      =				subset[i - 1][j] or subset[i - 1][j - arr[i - 1]]

							return subset[arr_len][required_sum]


if __name__ == "__main__":
		import doctest

		doctest.testmod()




