51Nod 1046 A^B Mod C Label:快速幂
Posted Radiumlrb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51Nod 1046 A^B Mod C Label:快速幂相关的知识,希望对你有一定的参考价值。
给出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
输出计算结果
Input示例
3 5 8
Output示例
3
代码
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define ll long long 6 using namespace std; 7 8 ll pow(ll x,ll n,ll m){ 9 ll ans=1; 10 while(n){ 11 if(n&1)ans=ans*x%m; 12 x=(x*x)%m; 13 n>>=1; 14 } 15 return ans; 16 } 17 18 int main(){ 19 ll a,b,c; 20 scanf("%lld%lld%lld",&a,&b,&c); 21 printf("%lld\n",pow(a,b,c)); 22 return 0; 23 }
以上是关于51Nod 1046 A^B Mod C Label:快速幂的主要内容,如果未能解决你的问题,请参考以下文章
51Nod-1046 A^B Mod C (快速幂,了解快速幂及对 A^B Mod C的求解)