给出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
输出计算结果
Sample Input
3 5 8
Sample Output
3
思路:
http://www.cnblogs.com/CXCXCXC/p/4641812.html(建议去看看)o(log n)。
⒈快速幂即是把幂转换成二进制来计算,具体情况上面地址讲的非常清楚了.
1 #include<cstdio> 2 #include<cstdlib> 3 #include<iostream> 4 using namespace std; 5 6 int PowerMod(long long a,long long b,long long c) 7 { 8 int ans=1; 9 a=a%c; 10 while(b>0) 11 { 12 if(b%2==1) 13 ans=ans*a%c; 14 a=a*a%c; 15 b=b/2; 16 } 17 return ans; 18 } 19 int main() 20 { 21 long long a,b,c; 22 scanf("%lld%lld%lld",&a,&b,&c); 23 a=PowerMod(a,b,c); 24 printf("%lld\n",a); 25 return 0; 26 }