1 #include<bits/stdc++.h> 2 3 using namespace std; 4 5 /*int pow_mod(int x , int y , int p){ 6 int ret = 1; 7 while(y){ 8 if(y & 1) ret = (ret * x) % p; 9 printf("ret = %I64d , x = &I64d , y = %I64d\n" , ret , x , y); 10 x = (x * x) % p ; 11 y >>= 1; 12 } 13 return ret; 14 } 15 */ 16 int pow_mod(int m , int n , int k){ 17 int b = 1; 18 while (n){ 19 if (n & 1) 20 b = (b * m) % k; 21 n = n >> 1 ; 22 m = (m * m) % k; 23 } 24 return b; 25 } 26 int main(){ 27 int x , y , p; //x 的 y 次幂 对 p取模 28 cin >> x >> y >> p; 29 cout << pow_mod(x , y , p); 30 }
位运算
广告:清北学堂
时间: 2024-10-10 08:04:24