fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int t;
  7. cin >> t;
  8.  
  9. while(t--)
  10. {
  11. long long k,l1,r1,l2,r2,y,x,c=0;
  12. cin >> k >> l1 >> r1 >> l2 >> r2;
  13. if(min(r1,r2)>=max(l1,l2))
  14. {
  15. c=min(r1,r2)-max(l1,l2)+1;
  16. }
  17. int p=1;
  18.  
  19. ////
  20. while(pow(k,p)*l1<=1e9)
  21. {
  22. x=l1;
  23. bool b = 0;
  24. int s = pow(k,p);
  25. if(s*l1>r2)
  26. {
  27. break;
  28. }
  29. while(b==0)
  30. {
  31. if(s*x<=r2&&s*x>=l2)
  32. {
  33. y=s*x;
  34. b=1;
  35. }
  36. else
  37. {
  38. x++;
  39. }
  40. }
  41.  
  42.  
  43. while(l1<=x&&x<=r1&&l2<=y&&y<=r2)
  44. {
  45. c++;
  46.  
  47. x++;
  48. y=s*x;
  49. }
  50. p++;
  51. ////
  52. }
  53. cout << c << endl;
  54. }
  55. }
Success #stdin #stdout 1.2s 5284KB
stdin
1 2 1 1000000000 1 1000000000
stdout
1999999987