




def      UpperCAmelCase  (						UpperCamelCase__   )     ->     str:







				'''simple docstring'''


				__lowerCAmelCase					=  1
				__lowerCAmelCase					=  0
				__lowerCAmelCase					=  1
				__lowerCAmelCase					=  1
				__lowerCAmelCase					=  3
				__lowerCAmelCase					=  3
				__lowerCAmelCase					=  limit
				__lowerCAmelCase					=  0

				__lowerCAmelCase					=  ''
				while counter != decimal + 1:
								if 4 * q + r - t < n * t:
												result += str(lowerCamelCase__   )
												if counter == 0:
																result += "."

												if decimal == counter:
																break

												counter += 1
												__lowerCAmelCase					=  10 * (r - n * t)
												__lowerCAmelCase					=  ((10 * (3 * q + r)) // t) - 10 * n
												q *= 10
												__lowerCAmelCase					=  nr
								else:
												__lowerCAmelCase					=  (2 * q + r) * l
												__lowerCAmelCase					=  (q * (7 * k) + 2 + (r * l)) // (t * l)
												q *= k
												t *= l
												l += 2
												k += 1
												__lowerCAmelCase					=  nn
												__lowerCAmelCase					=  nr
				return result





def      UpperCAmelCase  (						)     ->     None:







				'''simple docstring'''


				print(F'''{calculate_pi(50   ) = }'''   )
				import doctest

				doctest.testmod()


if __name__ == "__main__":
	main()













from __future__ import annotations




def       _a   (							lowerCamelCase__				)  ->      list[int]:
 lowerCamelCase_							:    Any							=     [0] * max_one

 for i in range(0 ,			lowerCamelCase__				):
  lowerCamelCase_							:    Union[str, Any]							=     i

 for i in range(2 ,			lowerCamelCase__				):
  if totients[i] == i:
   for j in range(lowerCamelCase__ ,			lowerCamelCase__ ,			lowerCamelCase__				):
    totients[j] -= totients[j] // i

 return totients




def       _a   (							lowerCamelCase__ ,			lowerCamelCase__				)  ->      bool:
 return sorted(str(lowerCamelCase__				)				) == sorted(str(lowerCamelCase__				)				)




def       _a   (							lowerCamelCase__ = 10_00_00_00				)  ->      int:
 lowerCamelCase_							:    Tuple							=     1  # i
 lowerCamelCase_							:    Union[str, Any]							=     0  # φ(i)
 lowerCamelCase_							:    List[Any]							=     get_totients(max_n + 1				)

 for i in range(2 ,			max_n + 1				):
  lowerCamelCase_							:    Tuple							=     totients[i]

  if i * min_denominator < min_numerator * t and has_same_digits(lowerCamelCase__ ,			lowerCamelCase__				):
   lowerCamelCase_							:    str							=     i
   lowerCamelCase_							:    List[Any]							=     t

 return min_numerator


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