Skip to content

Commit 21d2a67

Browse files
authored
简单的快速幂
1 parent 05f2e4f commit 21d2a67

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

Fast-Exponentiation.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include <cstdio>
2+
3+
using namespace std;
4+
5+
long long m;
6+
7+
// Calcutate a ^ b % m;
8+
long long qpow(long long a, long long b)
9+
{
10+
if (b == 1)
11+
{
12+
return a;
13+
}
14+
15+
long long mid = qpow(a, b >> 1);
16+
if ((b & 1) == 0)
17+
{
18+
return mid * mid % m;
19+
}
20+
else
21+
{
22+
return mid * mid % m * a % m;
23+
}
24+
}
25+
26+
int main()
27+
{
28+
long long a, b;
29+
scanf("%lld%lld%lld", &a, &b, &m);
30+
printf("%lld", qpow(a, b));
31+
return 0;
32+
}

0 commit comments

Comments
 (0)