fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4. typedef unsigned long long ll;
  5.  
  6. ll fib(ll f[], ll n)
  7. {
  8. f[0] = 0;
  9. f[1] = 1;
  10.  
  11.  
  12. for (ll i = 2; i <= n; i++)
  13. f[i] = (f[i - 1] + f[i - 2]) % 10;
  14.  
  15. return f[n];
  16. }
  17.  
  18. ll findLastDigit(ll n)
  19. {
  20. ll f[60];
  21. fib(f, 60);
  22.  
  23. return f[n % 60];
  24. }
  25.  
  26. ll countbase(ll n)
  27. {
  28. ll c=0;
  29. while(n!=0)
  30. {
  31. n/=2;
  32. c++;
  33. }
  34. return c-1;
  35.  
  36. }
  37.  
  38. int main()
  39. {
  40.  
  41. ll t; cin>>t; while(t--)
  42. {
  43. ll n; cin>>n;
  44. //ll x=(log2(n));
  45. ll y=countbase(n);
  46. //cout<<x<<" "<<y<<endl;
  47. ll index=pow(2,y)-1;
  48. //cout<<index<<endl;
  49. cout<<findLastDigit(index)<<endl;
  50. }
  51.  
  52. return 0;
  53. }
  54.  
  55.  
  56.  
Success #stdin #stdout 0s 4408KB
stdin
1
18014398509481983
stdout
9