#include<bits/stdc++.h> using namespace std; #define ll long long long long quickpow1(long long a, long long b,long long p) { long long ret = 1; while (b) { if (b & 1) { ret = ret * a%p; } a = a*a%p; b >>=1; } return ret; } int main() { ll q; cin>>q; while(q--) { ll a,b,p; cin>>a>>b>>p; cout<<quickpow1(a,b,p)<<endl; } return 0; }
快速幂算人人都必须要会的东西了
非常的好用,他的思想和套路都是!
基本思路:
就这样,我们就可以用快速幂的递归思想,去快速计算b^p%k的值。去避免高精度。
- 1 如果y=0
- 2.xx^(y-1) 如果y为奇数
- 3.(x^2)^(y div 2) 如果y为偶数
就这样,我们就可以用快速幂的递归思想,去快速计算b^p%k的值。去避免高精度。