fork download
  1. #include <bits/stdc++.h>
  2.  
  3. #define ll long long
  4. #define db double
  5.  
  6. #define pii pair<int, int>
  7.  
  8. #define vi vector<int>
  9. #define IOS ios_base::sync_with_stdio(false); cin.tie(NULL)
  10.  
  11. //pairs
  12. #define fs first
  13. #define se second
  14.  
  15. //vectors
  16. #define pb push_back
  17. #define pf push_front
  18.  
  19. //loops
  20. #define FOR(i, a, b) for(int i=(int)a;i<=(int)b;++i)
  21. #define ROF(i, a, b) for(int i=(int)a;i>=(int)b;i--)
  22. #define rep(a, x) for(auto& a : x)
  23. #define cc '\n'
  24.  
  25. //file
  26. #define file(name) if (fopen(name".inp", "r")) freopen(name".inp", "r", stdin), freopen(name".out", "w", stdout)
  27. #define TIME (1.0 * clock() / CLOCKS_PER_SEC)
  28.  
  29. using namespace std;
  30.  
  31. const int maxn = 5*1e3+7;
  32. const ll INF = 1e6;
  33.  
  34. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
  35. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  36. ll F[INF+1];
  37. void init() {
  38. for (int i = 1; i <= INF; i++) F[i] = 1;
  39.  
  40. for (int p = 2; p <= INF; p++) {
  41. if (F[p] == 1) {
  42. for (int j = p; j <= INF; j += p) {
  43. F[j] *= p;
  44. }
  45. }
  46. }
  47. }
  48.  
  49. void solve()
  50. {
  51. ll a, b; cin >> a >> b;
  52. map <ll, ll > mp;
  53. for(ll i = a; i<= b; i++) {
  54. mp[F[i]]++;
  55. }
  56. ll res = 0;
  57. for(auto &k : mp) {
  58. ll n = k.second;
  59. res += n*(n-1) / 2;
  60. }
  61. cout << res << cc;
  62. }
  63.  
  64. int main() {
  65. IOS;
  66. file("PRIME");
  67.  
  68. init();
  69. int T; cin >> T;
  70. while(T--) {
  71. solve();
  72. }
  73. cerr << "Time : " << TIME << " ";
  74. }
  75.  
Success #stdin #stdout #stderr 0.03s 11532KB
stdin
2
1 5
1 10
stdout
1
4
stderr
Time : 0.027823