如何使用模数余数进行除法?
例如:在9 ^ 2012除以11时找到余数。
使用模运算,9 == 1(mod 4),所以9 ^ 2012 == 1 ^ 2012(mod 4)。因此,9 ^ 2012 == 1(mod 4)。此外,11 == 3(mod 4)。为了回答这个问题,我试图做1(mod 4)/ 3(mod 4)。有没有办法做到这一点?
答案 0 :(得分:1)
有两个重要理论可以帮助您解决这个问题: -
Modular Exponentiation: - 这个简单的递归公式让你明白: -
(a^n)%p = ((a^(n-1))%p*a)%p
上面的公式可以帮助您防止在^ n很大时发生的溢出。 此外,可以使用O(logn)
进行快速指数费马的小定理: - 如果p为素数,则11为素数,然后(a^(p-1))%p = 1
为任何与p共同素数的(a^n)%p = (a^(n%(p-1)))%p
您的例子: -
9^2012 % 11 = ?
11 is prime and 9 is co-prime to 11 then using fermat's theorem
9^2012 % 11 = (9^(2012%10)) % 11
2012%10 = 2
9^2012 % 11 = 9^2 % 11 = 4