#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll b,p,k,s;//cin>>b>>p>>k;
scanf("%lld %lld %lld",&b,&p,&k);
s=1;
cout<<b<<"^"<<p<<" mod "<<k<<"=";
//printf("%lld^%lld mod %lld=",b,p,k);
while(p>0){
if(p%2==1){
s=s*b%k;//每一步都要取余
}
b=b*b%k;//取余
p=p>>1;
}
//cout<<s%k;
printf("%lld",s%k);//结果取余
return 0;
}
感觉这道题考察的是书写方式
本文展示了一种快速幂取模算法的C++实现过程,该算法通过位运算和取模操作,高效地计算了大数的幂次方并取模,适用于处理计算机科学中的大数运算问题。
482

被折叠的 条评论
为什么被折叠?



