题目描述
求 a 的 b 次方对 p 取模的值,其中 1≤a,b,p≤10^9
输入
三个用空格隔开的整数a,b和p。
输出
一个整数,表示a^b mod p的值。
样例输入
3 9
样例输出
8
挂这个题,纯属是因为我想整理模板,,,没什么说的,,直接套模板
代码:
#include<iostream>
using namespace std;
typedef long long ll;
ll qpow(ll a, ll b, ll mod)
{
ll ans = 1;
while(b)
{
if (b & 1) ans = ans * a % mod;
b = b / 2;
a = a * a % mod;
}
return ans;
}
int main( )
{
int a, b, mod;
cin>>a>>b>>mod;
cout<<qpow(a, b, mod) % mod<<endl;
return 0;
}