

'''simple docstring'''







def       UpperCAmelCase__    (      UpperCAmelCase__,       UpperCAmelCase__,       UpperCAmelCase__				)			->			List[str]:
       if n == 0:
              return 1

       elif n % 2 == 1:
              return (binary_exponentiation(UpperCAmelCase__,       n - 1,       UpperCAmelCase__				) * a) % mod

       else:
              A_						=      binary_exponentiation(UpperCAmelCase__,       n / 2,       UpperCAmelCase__				)
              return (b * b) % mod


# a prime number
__lowerCamelCase		       =    701

__lowerCamelCase		       =    10_0000_0000
__lowerCamelCase		       =    10

# using binary exponentiation function, O(log(p)):
print((a / b) % p == (a * binary_exponentiation(b, p - 2, p)) % p)







print((a / b) % p == (a * b ** (p - 2)) % p)



'''simple docstring'''







def       UpperCAmelCase__    (      UpperCAmelCase__				)			->			int:
       assert (
           isinstance(UpperCAmelCase__,       UpperCAmelCase__				) and number_of_steps > 0
       ), F'''number_of_steps needs to be positive integer, your input {number_of_steps}'''
       if number_of_steps == 1:
              return 1
       A_					,			A_						=      1, 1
       for _ in range(number_of_steps - 1				):
              A_					,			A_						=      current + previous, current
       return current


if __name__ == "__main__":
      import doctest

      doctest.testmod()
