#include<stdio.h>
long long myPow(long long a,long long n,long long m)
{
long long N=n;
if(N<0) //判断指数小于0情况
{
a=1/a;
N=-N;
}
long long sum=1;
for(long long i=0;i<N;++i)
{
sum=sum*a%m; //取模只能在每一步进行,因为如果指数很大
//会导致sum出现溢出情况(此时结果已经不对了)
//这时最后在取模会更加不对,因此只能每一步取模
//不能在最后进行一次性取模
}
return sum;
}
int main()
{
long long a,n,m;
scanf("%lld%lld%lld",&a,&n,&m);
printf("%lld",myPow(a,n,m));
return 0;
}
powmod 暴力版
于 2022-10-10 08:35:52 首次发布