快速模幂
内存限制: 256 MiB 时间限制: 1000 ms 标准输入输出 题目类型: 传统 评测方式: 文本比较
题目描述
试求a ^ b % n的值,其中 a、b、n 均为整数范围内的数。
输入格式
三个整数即 a、b、n。
输出格式
输出结果。
样例
样例输入
复制1 1 1
样例输出
复制0
#include <bits/stdc++.h>
using namespace std;
long long a, b, n;
long long f(long long p) {
if(p == 0) {
return 1;
}
if(p == 1) {
return a;
}
long long q = f(p / 2) % n;
if(p % 2 == 0) {
return q * q % n;
} else {
return a * q * q % n;
}
}
int main() {
scanf("%d %d %d", &a, &b, &n);
a %= n;
printf("%d", f(b));
return 0;
}
//同样要开 long long