Advertisement
duffily

3r

May 25th, 2019
499
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.42 KB | None | 0 0
  1.  
  2. #include <bits/stdc++.h>
  3.  
  4. using namespace std;
  5.  
  6. typedef long long ll;
  7.  
  8. ll fib(ll a, ll b, ll p, ll q, ll n, int m) {
  9. if (n==0)
  10. return b%m; else
  11. if (n%2==0)
  12. return fib(a%m, b%m, (p*p+q*q)%m, (q*q+2*p*q)%m, n/2, m);
  13. else
  14. return fib((b*q+a*q+a*p)%m, (b*p+a*q)%m, p%m, q%m, n-1, m);
  15. }
  16.  
  17. int main()
  18. {
  19.  
  20. ll n,m;
  21. cin>>n>>m;
  22. cout<<fib(1, 0, 0, 1,n,m);
  23.  
  24. return 0;
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement