输入\(b\),\(p\),\(k\)的值,求\(b^p mod k\)的值。其中\(b\),\(p\),\(k^2\)为长整型数。
\(print\) \(pow(b,p)\)\(mod\)\(k\)
详见数据范围。于是我们需要手动执行幂运算。
for (int i=1;i<=p;i++)
{
ans*=b;
ans%=k;
}
T飞吧qwq
不想解释……太懒了(累)
(毕竟这种东西解释起来需要大量LaTeX)
当作一篇保存的模板吧……沉下去吧……如果有人真的是为了学习误入了这里,那么右转;
#include <cstdio>
#define ll long long
ll k;
ll power(ll a,ll b)
{
ll ans=1,base=a;
while (b>0)
{
if (b&1)
{
ans*=base;
ans%=k;
}
base*=base;
base%=k;
b>>=1;
}
return ans;
}
int main()
{
ll b,p;
scanf("%lld%lld%lld",&b,&p,&k);
printf("%lld^%lld mod %lld=%lld",b,p,k,power(b,p)%k);
return 0;
}
原文:https://www.cnblogs.com/Kan-kiz/p/10697748.html