Sreekar_0125

Untitled

Feb 19th, 2024
1,096
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.51 KB | None | 0 0
  1. int fib(int n)
  2. {
  3.     int a, b, p, q;
  4.     a = q = 1;
  5.     b = p = 0;
  6.     while (n > 0)
  7.     {
  8.         if (n % 2 == 0)
  9.         {
  10.             int qq = (q * q) % m;
  11.             q = ((2 * p * q) % m + qq % m) % m;
  12.             p = ((p * p) % m + qq % m) % m;
  13.             n /= 2;
  14.         }
  15.         else
  16.         {
  17.             int aq = (a * q) % m;
  18.             a = ((b * q) % m + aq % m + (a * p) % m) % m;
  19.             b = ((b * p) % m + aq % m) % m;
  20.             n -= 1;
  21.         }
  22.     }
  23.     return b % m;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment