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. ll s[7] = {2,3,5,7,11,13,17};
  38. void init() {
  39. for (int i = 1; i <= INF; i++) F[i] = 1;
  40.  
  41. for( auto p: s){
  42. if (F[p] == 1) {
  43. for (int j = p; j <= INF; j += p) {
  44. F[j] *= p;
  45. }
  46. }
  47. }
  48. }
  49.  
  50. void solve()
  51. {
  52. ll a, b; cin >> a >> b;
  53. map <ll, ll > mp;
  54. for(ll i = a; i<= b; i++) {
  55. mp[F[i]]++;
  56. }
  57. ll res = 0;
  58. for(auto &k : mp) {
  59. ll n = k.second;
  60. res += n*(n-1) / 2;
  61. }
  62. cout << res << cc;
  63. }
  64.  
  65. int main() {
  66. IOS;
  67. file("PRIME");
  68.  
  69. init();
  70. int T; cin >> T;
  71. while(T--) {
  72. solve();
  73. }
  74. cerr << "Time : " << TIME << " ";
  75. }
Success #stdin #stdout #stderr 0.01s 11480KB
stdin
2
1 5
1 10
stdout
1
4
stderr
Time : 0.011877