fork download
  1. //#pragma comment(linker, "/stack:200000000")
  2. //#pragma GCC optimize("Ofast")
  3. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  4. //#pragma GCC optimize("unroll-loops")
  5.  
  6. #include <stdio.h>
  7. #include <bits/stdc++.h>
  8. typedef unsigned long long ull;
  9. #define uint unsigned int
  10. #define ll long long
  11. #define ld long double
  12. #define rep(i, l, r) for (int i = l; i < r; i++)
  13. #define repb(i, r, l) for (int i = r; i > l; i--)
  14. #define sz(a) (int)a.size()
  15. #define fi first
  16. #define se second
  17. #define mp(a, b) make_pair(a, b)//freopen("a.in", "r", stdin);
  18. //freopen("a.out", "w", stdout);
  19. ios_base::sync_with_stdio(0);
  20. cin.tie(0);
  21. cout.precision(20);
  22. cout << fixed;
  23. //ll TL = 0.95 * CLOCKS_PER_SEC;
  24. //double t = clock();
  25. //ll counter = 0;
  26. for (int i = 1, i2 = 1; i2 <= 300000000; i2 += (i << 1) + 1, ++i)
  27. for (int j = 1, j2 = 1; i2 + j2 <= 300000000; j2 += (j << 1) + 1, ++j) {
  28. //++counter;
  29. Bitset::set(b0, i2+j2);
  30. //b0[(i2+j2) >> 8] |= ull(1) << ((i2 + j2) & 63);
  31. }
  32. //std::cout << "time1 = " << (clock() - t) / CLOCKS_PER_SEC << ", counter = " << counter << std::endl;
  33. /*b.set(0); b.set(1);
  34.   for (int i = 2; i <= 300000000; i++)
  35.   if (!b.test(i))
  36.   for (int j = i * 2; j <= 300000000; j += i)
  37.   b.set(j);
  38.   int cnt = 0;
  39.   for (int i = 1; i <= 300000000; i++)
  40.   {
  41.   if (b0.test(i) && !b.test(i))
  42.   cnt++;
  43.   if (i % 100000 == 0)
  44.   cout << cnt << ",";
  45.   }*/
  46. int l, r;
  47. cin >> l >> r;
  48. cout << solve(r) - solve(l - 1) << "\n";
  49. return 0;
  50. }
Success #stdin #stdout 0.94s 12476KB
stdin
100 152262461
stdout
4281819