在 Python 中找出给定方程的值的程序

假设我们有五个整数 a、b、c、d、n。我们必须找出 ((ab)(cd)) mod n。输出值为整数。

因此,如果输入类似于 a = 2, b = 3, c = 2, d = 4, n = 10,那么输出将为 6。

2^3 = 8
2^4 = 16
8^16 = 281474976710656
281474976710656 mod 10 = 6

示例

让我们看看以下实现以获得更好的理解 -

def helper(n):
   p = n
   i = 2
   while i * i <= n:
      if n % i == 0:
         p -= p // 一世
      while n % i == 0:
         n = n // 一世
      if i != 2:
         i += 2
      else:
         i += 1
   if n > 1:
      p -= p // n
   return p

def solve(a, b, c, d, n):
   if b == 0 or (c == 0 and d != 0):
      return pow(a, 0, n)
   if c == 1 or d == 0:
      return pow(a, b, n)
   if a == 0 or a % n == 0:
      return 0
   if d == 1:
      return pow(a, b * c, n)
   p = helper(n)
   e = pow(c, d, p) + p
   return pow(pow(a, b, n), e, n)

print(solve(2, 3, 2, 4, 10))

输入

2, 3, 2, 4, 10
输出结果
6

猜你喜欢