Advertisement
Mirbek

Бинарное возведение в степень

Jan 3rd, 2022
1,494
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.43 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int binpow(int a, int n, int mod) {
  6.     if (n == 0) return 1;
  7.     if (n % 2 == 0) {
  8.         int b = binpow(a, n / 2, mod);
  9.         return (1ll * b * b) % mod;
  10.     } else {
  11.         return (1ll * binpow(a, n - 1, mod) * a) % mod;
  12.     }
  13. }
  14.  
  15. int main(){
  16.     int a, n, mod;
  17.     cin >> a >> n >> mod;
  18.  
  19.     cout << binpow(a, n, mod) << endl;
  20. }
  21. /***
  22. mod = 1e9 ^ 7
  23. A^n % mod
  24. ***/
  25.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement