Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. long long szybkie(long long a, long long b, long long p)
  4. {
  5.     a=a%p;
  6.     long long a1=a*a;
  7.     a1%=p;
  8.     if (b<=1)
  9.     return a;
  10.     if (b%2==0)
  11.         return szybkie(a1, b/2, p)%p;
  12.     else
  13.         return (szybkie(a1, b/2, p)*a)%p;
  14. }
  15. int main ()
  16. {
  17.     int n;
  18.     cin >> n;
  19.     for (int i=0; i<n; i++)
  20.     {
  21.         long long a, b, c, p;
  22.         cin >> a >> b >> c >> p;
  23.         if (a%p==0)
  24.         {
  25.             cout << 0 << "\n";
  26.             continue;
  27.         }
  28.         long long x;
  29.             x=szybkie(b, c, p);
  30.         //cout << x << " ";
  31.         cout << szybkie(a, x, p) << "\n";
  32.     }
  33.     return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement