快速幂 cojs 1130. 取余运算

时间:2023-03-09 06:58:22
快速幂  cojs 1130. 取余运算

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
 #include<iostream>
using namespace std;
#include<cstdio>
long long b,p,k;
int main()
{
freopen("dmod.in","r",stdin);
freopen("dmod.out","w",stdout);
cin>>b>>p>>k;
long long ans=;
b%=k;
while(p)
{
if(p&)/*如果p是奇数的话,/2就会少乘一次,在这里补上*/
{
p--;
ans=(ans*b)%k;
}
p>>=;
b=(b*b)%k;
}
cout<<ans<<endl;
fclose(stdin);fclose(stdout);
}