题目描述
给出三个整数 a,b,ma,b,ma,b,m,求 ab mod ma^b\bmod mabmodm 的值。
输入格式
一行三个整数 a,b,ma,b,ma,b,m。
输出格式
一个整数,表示 ab mod ma^b\bmod mabmodm 的值。
样例
样例输入
2 100 1007
样例输出
169
数据范围与提示
对于全部数据,1≤a,b,m≤1091\le a,b,m\le 10^91≤a,b,m≤109。
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
typedef long long LL;
LL binary(LL a, LL b, LL m)
{
LL ans = 1;
a = a % m;//这个防止出错
while (b > 0) {
if (b & 1) {
ans = ans * a%m;
}
a = a * a%m;
b >>= 1;
}
return ans;
}
int main()
{
LL a, b, m;
scanf("%lld %lld %lld", &a, &b, &m);
printf("%lld\n", binary(a, b, m));
return 0;
}
本文详细介绍了一种高效计算大数幂次方取模运算的方法——快速幂算法。通过实例演示了如何使用C++实现该算法,以解决给定三个整数a、b、m时求a^b mod m的问题。适用于竞赛编程和大数运算场景。
989

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



