打表找规律然后发现是n的k次幂
然后快速幂,实现的时候有一些地方会溢出,可以快速乘或者先进行取模运算
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll mul_mod(ll a,ll b){
ll ans=0;
while(b){
if(b&1){
ans=(ans+a)%mod;
}
a=(a+a)%mod;
b>>=1;
}
return ans;
}
ll power_mod(ll a,ll b){
ll ans=1;
while(b){
if(b&1){
ans=(mul_mod(ans,a))%mod;
}
a=(mul_mod(a,a))%mod;
b>>=1;
}
return ans;
}
ll qpow(ll a,ll b){
ll ans=1;
a%=mod;
while(b){
if(b&1) ans=(ans*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return ans;
}
int main(int argc, char const *argv[])
{
ll a,b;
int cas=1;
while(~scanf("%lld %lld",&a,&b)){
ll ans=qpow(a,b);
printf("Case #%d: %lld\n",cas++,ans);
}
return 0;
}