Description
fiile name: mod
定义“取模”运算:对于正整数 a 和 p,a % p 表示 a 除以 p 的余数,又称“模”运算。现在,输入三个正整数 b、p、k,请编程计算 b^p % k 的值。
Input
一行三个正整数,分别表示 b、p、k 的值。其中,b、p、k×k≤2147483647。
Output
一行一个整数,表示 b^p % k 的值。
Sample Input
2 10 9
Sample Output
7
无良long long,毁我青春
#include <iostream>
#include <cstdio>
using namespace std;
long long quickpow(long long a, long long b, long long mod) // 模板
{
long long res = 1;
while (b)
{
if (b & 1)
{
res *= a;
res %= mod;
}
a *= a;
a %= mod;
b >>= 1;
}
return res;
}
int main(void)
{
long long a, b, p;
scanf("%lld%lld%lld", &a, &b, &p);
printf("%lld", quickpow(a, b, p));
return 0;
}

本文介绍了一种计算大数模幂的高效算法——快速幂算法。通过实例演示了如何使用快速幂算法计算b^p%k的值,避免了直接计算带来的溢出问题。文章提供了一个C++实现的代码示例,展示了算法的具体步骤。
1163

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



