


'''simple docstring'''



def      _a     (						_lowercase :     str      , _lowercase :     str  ):





     '''simple docstring'''






     def get_matched_characters(_lowercase :     str      , _lowercase :     str  ) -> str:
          __UpperCAmelCase     :			Any  							=      []
          __UpperCAmelCase     :			Optional[Any]  							=      min(len(_stra  )      , len(_stra  )  ) // 2
          for i, l in enumerate(_stra  ):
               __UpperCAmelCase     :			List[Any]  							=      int(max(0      , i - limit  )  )
               __UpperCAmelCase     :			Tuple  							=      int(min(i + limit + 1      , len(_stra  )  )  )
               if l in _stra[left:right]:
                    matched.append(_lowercase  )
                    __UpperCAmelCase     :			List[str]  							=      F'{_stra[0:_stra.index(_lowercase  )]} {_stra[_stra.index(_lowercase  ) + 1:]}'

          return "".join(_lowercase  )

     # matching characters
     __UpperCAmelCase     :			str  							=      get_matched_characters(_lowercase      , _lowercase  )
     __UpperCAmelCase     :			List[Any]  							=      get_matched_characters(_lowercase      , _lowercase  )
     __UpperCAmelCase     :			int  							=      len(_lowercase  )

     # transposition
     __UpperCAmelCase     :			int  							=      (
         len([(ca, ca) for ca, ca in zip(_lowercase      , _lowercase  ) if ca != ca]  ) // 2
     )

     if not match_count:
          __UpperCAmelCase     :			str  							=      0.0
     else:
          __UpperCAmelCase     :			str  							=      (
              1
              / 3
              * (
                  match_count / len(_lowercase  )
                  + match_count / len(_lowercase  )
                  + (match_count - transpositions) / match_count
              )
          )

     # common prefix up to 4 characters
     __UpperCAmelCase     :			List[str]  							=      0
     for ca, ca in zip(stra[:4]      , stra[:4]  ):
          if ca == ca:
               prefix_len += 1
          else:
               break

     return jaro + 0.1 * prefix_len * (1 - jaro)


if __name__ == "__main__":
      import doctest

      doctest.testmod()
      print(jaro_winkler("hello", "world"))



'''simple docstring'''



def      _a     (						_lowercase :     int = 600851475143  ):





     '''simple docstring'''






     try:
          __UpperCAmelCase     :			str  							=      int(_lowercase  )
     except (TypeError, ValueError):
          raise TypeError('''Parameter n must be int or castable to int.'''  )
     if n <= 0:
          raise ValueError('''Parameter n must be greater than or equal to one.'''  )
     __UpperCAmelCase     :			Dict  							=      1
     __UpperCAmelCase     :			List[str]  							=      2
     while i * i <= n:
          while n % i == 0:
               __UpperCAmelCase     :			int  							=      i
               n //= i
          i += 1
     if n > 1:
          __UpperCAmelCase     :			List[str]  							=      n
     return int(_lowercase  )


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