Advertisement
DavidsonDFGL

Arbitrary fibonacci

Feb 17th, 2016
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.58 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3. #include <gmpxx.h>
  4.  
  5. using namespace std;
  6.  
  7. mpz_class fibo(unsigned long fib)
  8. {
  9.     mpz_class i = 1;
  10.     mpz_class j = 0;
  11.  
  12.     for(size_t k = 1; k <= fib; k++)
  13.     {
  14.         mpz_class t;
  15.         t = i+j;
  16.         i = j;
  17.         j = t;
  18.     }
  19.  
  20.     return j;
  21. }
  22.  
  23. int main()
  24. {
  25.     mpz_class fib, modValue = 0, test;
  26.     unsigned long m = 0, n = 0;
  27.  
  28.     while(cin >> n >> m)
  29.     {
  30.         if( n >= 0 && n <= 2147483647 && m >= 0 && m < 20)
  31.         {
  32.             fib = fibo(n);
  33.             mpz_ui_pow_ui (modValue.get_mpz_t(), 2, m);
  34.  
  35.             test = fib % modValue;
  36.             cout<<test<<"\n";
  37.         }
  38.     }
  39.  
  40.     return(0);
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement