求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤10^9
基本算法题,快速幂模板题
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include <climits>
#include<queue>
#include<vector>
#include <string.h>
#include <math.h>
#include<map>
#include<string.h>
#define ll long long
using
namespace
std;
ll quickmod(ll a, ll b,
int
p)
{
ll ans=1;
a=a%p;
while
(b!=0)
{
if
(b&1)
{
ans=(ans*a)%p;
}
b=(b>>1);
a=(a*a)%p;
}
return
ans;
}
int
main()
{
// freopen("in.txt","r",stdin);
ll ans,a,b;
int
p;
scanf
(
"%lld %lld %d"
,&a,&b,&p);
ans=quickmod(a,b,p);
if
(b==0)
{
ans=1%p;//b为0,特判
}
printf
(
"%lld\n"
,ans%p);
return
0;
}