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);
}