




def   _snake_case    (       lowercase__ = 1000000	):
				_lowerCamelCase  :    Optional[Any]					=					set(range(3							,					lowercase__							,					2	)	)
				primes.add(2	)
				for p in range(3							,					lowercase__							,					2	):
								if p not in primes:
												continue
								primes.difference_update(set(range(p * p							,					lowercase__							,					lowercase__	)	)	)

				_lowerCamelCase  :    List[str]					=					[float(lowercase__	) for n in range(limit + 1	)]

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

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


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





"""simple docstring"""






from __future__ import annotations

lowercase__  		=		10







def   _snake_case    (       lowercase__	):
				_lowerCamelCase  :    List[Any]					=					1
				_lowerCamelCase  :    Optional[int]					=					max(lowercase__	)
				while placement <= max_digit:
								# declare and initialize empty buckets
								_lowerCamelCase  :    list[list]					=					[[] for _ in range(lowercase__	)]
								# split list_of_ints between the buckets
								for i in list_of_ints:
												_lowerCamelCase  :    Dict					=					int((i / placement) % RADIX	)
												buckets[tmp].append(lowercase__	)
								# put each buckets' contents into list_of_ints
								_lowerCamelCase  :    str					=					0
								for b in range(lowercase__	):
												for i in buckets[b]:
																_lowerCamelCase  :    str					=					i
																a += 1
        # move to next
								placement *= RADIX
				return list_of_ints


if __name__ == "__main__":
			import doctest

			doctest.testmod()