cojs 1130. 取余运算
★ 输入文件:dmod.in
输出文件:dmod.out
简单对比
时间限制:10 s 内存限制:128 MB
【题目描述】
输入b,p,k的值,求b^p mod k的值。其中b,p,k*k为长整型数。
【输入格式】
输入文件只包含一行,即b p k。
【输出格式】
所求运算的余数。
【样例输入】
2 10 9
【样例输出】
7
1 #include<iostream> 2 using namespace std; 3 #include<cstdio> 4 long long b,p,k; 5 int main() 6 { 7 freopen("dmod.in","r",stdin); 8 freopen("dmod.out","w",stdout); 9 cin>>b>>p>>k; 10 long long ans=1; 11 b%=k; 12 while(p) 13 { 14 if(p&1)/*如果p是奇数的话,/2就会少乘一次,在这里补上*/ 15 { 16 p--; 17 ans=(ans*b)%k; 18 } 19 p>>=1; 20 b=(b*b)%k; 21 } 22 cout<<ans<<endl; 23 fclose(stdin);fclose(stdout); 24 }