



'''simple docstring'''

from __future__ import annotations

from fractions import Fraction



def 	__lowerCamelCase	( lowerCAmelCase_		,     lowerCAmelCase_    )     -> bool:
		return (
		    num != den and num % 10 == den // 10 and (num // 10) / (den % 10) == num / den
		)



def 	__lowerCamelCase	( lowerCAmelCase_    )     -> list[str]:
		_a	: Dict								=				[]
		_a	: Any								=				11
		_a	: Optional[int]								=				int('1' + '0' * digit_len    )
		for num in range(lowerCAmelCase_		,     lowerCAmelCase_    ):
				while den <= 99:
						if (num != den) and (num % 10 == den // 10) and (den % 10 != 0):
								if is_digit_cancelling(lowerCAmelCase_		,     lowerCAmelCase_    ):
										solutions.append(f"""{num}/{den}"""    )
						den += 1
				num += 1
				_a	: List[str]								=				10
		return solutions



def 	__lowerCamelCase	( lowerCAmelCase_ = 2    )     -> int:
		_a	: Optional[Any]								=				1.0
		for fraction in fraction_list(lowerCAmelCase_    ):
				_a	: int								=				Fraction(lowerCAmelCase_    )
				result *= frac.denominator / frac.numerator
		return int(lowerCAmelCase_    )


if __name__ == "__main__":
							print(solution())









'''simple docstring'''

def 	__lowerCamelCase	( lowerCAmelCase_ = 1000000    )     -> int:
		_a	: Optional[int]								=				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	: Tuple								=				[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() = }""")




