求 a 的 b 次方对 p 取模的值。

输入格式
三个整数 a,b,p ,在同一行用空格隔开。

输出格式
输出一个整数,表示a^b mod p的值。

数据范围
0 ≤ a, b ≤ $10^9$
1 ≤ p ≤ $10^9$
输入样例:
3 2 7
输出样例:
2


题解:

#include<iostream>
using namespace std;

int power(int a, int b, int p) {
    int ans = 1 % p;
    for(; b; b >>= 1) {
       if(b & 1) ans = (long long)ans * a % p;
       a = (long long)a * a % p; 
    }
    return ans;
}

int main() {
    int a, b, p;
    cin >> a >> b >> p;
    cout << power(a, b, p) << endl;
    return 0;
}
Last modification:March 7, 2022
如果觉得我的文章对你有用,请随意赞赏