Advertisement
4eyes4u

Stepenovanje ogromnim brojem

Mar 28th, 2016
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.61 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. typedef long long ll;
  3. using namespace std;
  4.  
  5. const ll mod=1e9+7;
  6. const int N=1e5+10;
  7.  
  8. ll mod_pow (ll num, ll pw)
  9. {
  10.     ll ret=1;
  11.     while (pw)
  12.     {
  13.         if (pw&1) ret=(ret*num)%mod;
  14.         pw>>=1;
  15.         num=(num*num)%mod;
  16.     }
  17.     return ret;
  18. }
  19.  
  20. ll a, b, sol=1;
  21. char s[N];
  22.  
  23. void calc ()
  24. {
  25.     int n=strlen(s);
  26.     ll x=a;
  27.  
  28.     for (int i=n-1;i>=0;i--)
  29.     {
  30.         sol=(sol*mod_pow(x, (ll)(s[i]-'0')))%mod;
  31.         x=mod_pow(x, 10);
  32.         b/=10;
  33.     }
  34. }
  35.  
  36. int main()
  37. {
  38.     scanf ("%lld%s", &a, s);
  39.  
  40.     calc();
  41.     cout << sol;
  42.  
  43.     return 0;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement