假设我们有五个整数 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