Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.59 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. long long fi[100099];
  6.  
  7. long long ff(long long k, long long n, long long m){
  8.     if(n == 0)
  9.         return k%m;
  10.     else if(n == 1)
  11.         return (k*k)%m;
  12.     else if(fi[n] != -1)
  13.         return fi[n];
  14.     else
  15.         return fi[n] = (ff(k, n - 1, m)*ff(k, n - 2, m))%m;
  16. }
  17.  
  18. int main(){
  19.     long long n, k, m, as;
  20.     int t, tc;
  21.     cin >> tc;
  22.     for(t = 1; t <= tc; t++){
  23.         memset(fi, -1LL, sizeof(fi));
  24.         cin >> n >> k >> m;
  25.         as = ff(k, n, m);
  26.         printf("Case %d: %lld\n", t, as);
  27.     }
  28.     return 0;
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement