https://www.luogu.org/problemnew/show/P1226
模板题 直接上代码吧
#include<bits/stdc++.h> using namespace std; int main()
{
long long int c,b,p,k,base,ans=;
cin>>b>>p>>k;
c=p,base=b;
while(p>)
{
if(p&)
{
ans*=base;
ans%=k;
}
base*=base;
base%=k;
p>>=;
}
ans%=k;
printf("%lld^%lld mod %lld=%lld",b,c,k,ans);
}
最后结束循环之后一定要加上这句 ans%=k; 不然输入如果是 1 0 1时就会报错 算是一个坑点