输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
三个整数b,p,k.
输出“b^p mod k=s”
s为运算结果
2^10 mod 9=7
算法原理:
b^p = b^(p-1) * b^(p-1)
AC代码:
1 #include<iostream> 2 #include<iomanip> 3 #include<cstdio> 4 using namespace std; 5 long long b,p,k; 6 long long ksm(long long p){ 7 if(b==0) return 0; 8 if(p==0) return 1; 9 long long x=ksm(p/2)%k; 10 if(p%2==0) return x*x%k; 11 else return x*x%k*b%k; 12 } 13 int main(){ 14 cin>>b>>p>>k; 15 cout<<b<<"^"<<p<<" mod "<<k<<‘=‘<<ksm(p)%k; 16 return 0; 17 }
原文:https://www.cnblogs.com/lipeiyi520/p/10421524.html