快速幂问题,求a的b次方与p的模:
请问为什么return b;是WA,return b%z就对了,加不加%z不都是一样的吗?
#include<stdio.h>
long long mi(long long x,long long y,long long z);
long long mi(long long x,long long y,long long z)
{
long long a=x;
long long b=1;
a=a%z;
while(y!=0)
{if(y%2==1)
b=(b%z*a%z)%z;
a=(a*a)%z;
y=y/2;}
return b%z
}
int main()
{
long long o,p,q;
while(scanf("%lld %lld %lld",&o,&p,&q)!=EOF)
{printf("%lld\n",mi(o,p,q));}
return 0;
}
(小萌新求真相)