
给出3个正整数A B C,求A^B Mod C。
例如,3 5 8,3^5 Mod 8 = 3。
Input
3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9)
Output
输出计算结果
Input示例
3 5 8
Output示例
3
原理
如果求a^b,可以将b转换为二进制数
例如
11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
因此,我们将a¹¹转化为算
符合下面公式
pow(a,b)=1 (n=0时)
pow(a,b)=pow(x²,n/2) (n为偶数)
pow(a,b)=pow(x²,n/2)*x (n为奇数)
( a x b ) % m= a % m x b % m
算法复杂度O(logn)
完整代码
|
|




近期评论