Advertisement
Guest User

Untitled

a guest
Aug 17th, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.47 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. long long a, n, m;
  6.  
  7. long long binpow(long long x, long long n){
  8.     if(!n) return 1;
  9.     if(n&1) return x*binpow(x,n-1)%m;
  10.     long long k = binpow(x,n/2);
  11.     return k*k%m;
  12. }
  13. long long f(long long n){
  14.     if(n==1) return 1;
  15.     if(n%2) return ((a*f(n-1))%m+1)%m;
  16.     long long k = f(n/2);
  17.     return f(n/2)*((1+binpow(a,n/2))%m)%m;
  18. }
  19.  
  20. int main(){
  21.   cin >> a >> n >> m;
  22.   a = (a%m+m)%m;
  23.   cout << f(n+1);
  24.   return 0;
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement