各位大神,请问为什么要边乘边模?怎么改?
蒟蒻代码:
#include <iostream>
using namespace std;
int main()
{
long long a,b,p,t=1;cin>>a>>b>>p;long long x=a,y=b;//要存下a,b
if(b==0){cout<<x<<"^"<<y<<" mod "<<p<<"="<<1%p;return 0;}//指数为零
while(b!=1)//快速幂
{
if(b%2==1)t*=a;
b/=2;a*=a;
}
cout<<x<<"^"<<y<<" mod "<<p<<"="<<a*t%p;//输出
return 0;
}
求大神指教