这一题 必须用快速幂 去解决 不然 会超时 . o(N)的算法 已经无法拯救人类 , 现在最小也要 O (log N)的算法出手 才有人看...
1 /*求(a^b)%mod*/
1 /*求(a^b)%mod*/
2 #include<stdio.h>
3 #include<string.h>
4 #include<math.h>
5 #include<iostream>
6 #include<algorithm>
7 #include<queue>
8 #include<vector>
9 #include<set>
10 #include<stack>
11 #include<string>
12 #include<sstream>
13 #include<map>
14 #include<cctype>
15 #include<limits.h>
16 using namespace std;
17 __int64 a,b,mod;
18 __int64 speed_pow(__int64 x,__int64 n)
19 {
20 __int64 res=1;
21 while(n>0)
22 {
23 if(n&1)
24 res=(res*x)%mod; //去掉 mod 就是 普通的求 快速幂 .
25 x=(x*x)%mod;
26 n>>=1;
27 }
28 return res;
29 }
30 int main()
31 {
32 while(scanf("%I64d%I64d%I64d",&a,&b,&mod)!=EOF)
33 {
34 __int64 result=speed_pow(a,b);
35 printf("%I64d\n",result);
36 }
37 return 0;
38 }