





'''simple docstring'''

def 						UpperCamelCase    (							_lowerCamelCase : int = 1_00_00_00	):
				A__    =      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	)	)	)

				A__    =      [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() = }""")










'''simple docstring'''

def 						UpperCamelCase    (							_lowerCamelCase : int = 1_00_00_00	):
    A__    =      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	)	)	)

    A__    =      [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() = }""")



