快速冥
描述
输入 b,p,k 的值,求 bp mod k的值。其中 b,p,k 为长整型数。
输入描述
输入 b,p,k 的值。
输出描述
求 bp mod k 的值。
样例输入 1
2 10 9样例输出 1
7
代码:
#include<bits/stdc++.h>
using namespace std;
//求a的b次方%k的结果
int main(){long long a,b,k,ans=1;cin>>a>>b>>k;//判断b是否为偶数//是:a=a*a,b/=2;//不是:ans*=a;a=a*a;b/=2 while(b>0){if(b%2==1){ans=(ans*a)%k;}a=(a*a)%k;b/=2;}cout<<ans;return 0;
}