题目描述
求 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;
}
本文介绍了一种高效的计算a的b次方对p取模的值的方法,适用于大数运算场景。通过快速幂算法,文章提供了一个C++实现的模板代码,用于解决1≤a,b,p≤10^9范围内的幂取模问题。
485

被折叠的 条评论
为什么被折叠?



