基本算法专题 【快速幂】a^b

题目描述

求 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;
}
posted @ 2020-04-09 09:59  我找木鱼  阅读(109)  评论(0)    收藏  举报