利用次数的位运算二进制加速
1 #include<stdio.h>
2 #include<string.h>
3 typedef long long ll;
4 const int mod=1e9+7;
5
6 ll QP(ll a,ll n){
7 ll tmp=a,ans=1;
8 while(n){
9 if(n&1)ans=ans*tmp%mod;
10 tmp=tmp*tmp%mod;
11 n>>=1;
12 }
13 return ans;
14 }
15
16 int main(){
17 ll a,n;
18 while(scanf("%lld%lld",&a,&n)!=EOF){
19 ll m=QP(a,n);
20 printf("%lld
",m);
21 }
22 return 0;
23 }