Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- ll fib(ll a, ll b, ll p, ll q, ll n, int m) {
- if (n==0)
- return b%m; else
- if (n%2==0)
- return fib(a%m, b%m, (p*p+q*q)%m, (q*q+2*p*q)%m, n/2, m);
- else
- return fib((b*q+a*q+a*p)%m, (b*p+a*q)%m, p%m, q%m, n-1, m);
- }
- int main()
- {
- ll n,m;
- cin>>n>>m;
- cout<<fib(1, 0, 0, 1,n,m);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement