还记得
前段时间学习二进制快速幂有多崩溃
当然这次方法略有不同
居然轻轻松松的
题目描述
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
输入输出格式
输入格式:
三个整数b,p,k.
输出格式:
输出“b^p mod k=s”
s为运算结果
-----------------------------------------------------------------------
1 #include<cstdio> 2 #include<cmath> 3 using namespace std; 4 long long a, b, c, t; 5 int main(){ 6 scanf("%lld %lld %lld", &a, &b, &c); 7 t = 1; 8 printf("%lld^%lld mod %lld=", a, b, c); 9 while(b > 0){ 10 if(b % 2 == 1){ 11 t = a * t % c; 12 b--; 13 } 14 a = a * a % c; 15 b /= 2; 16 } 17 printf("%lld",t % c); 18 return 0; 19 }