快速冪模板,注意在最後輸出時也要取模。ios
1 inline ll ksm(ll x,ll y) 2 { 3 ll ans=1; 4 while(y>0) 5 { 6 if(y&1) 7 { 8 ans*=x; 9 ans%=k; 10 } 11 x*=x; 12 x%=k; 13 y>>=1; 14 } 15 return ans; 16 }
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 typedef long long ll; 7 ll b,p,k,ans=1; 8 inline ll ksm(ll x,ll y) 9 { 10 while(y>0) 11 { 12 if(y&1) 13 { 14 ans*=x; 15 ans%=k; 16 } 17 x*=x; 18 x%=k; 19 y>>=1; 20 } 21 return ans; 22 } 23 int main() 24 { 25 scanf("%lld%lld%lld",&b,&p,&k); 26 printf("%lld^%lld mod %lld=",b,p,k); 27 ans=ksm(b,p); 28 printf("%lld",ans%k); 29 return 0; 30 }
請各位大佬斧正(反正我不認識斧正是什麼意思)spa