fork download
  1. /*
  2.  * Language: Standard C++23 [-std=c++23]
  3.  * Author: Zang Vũ aka zvwgvx
  4.  * Github & Discord & Facebook: @zvwgvx
  5.  */
  6.  
  7. #pragma GCC optimize("fast-math,O3")
  8. #pragma GCC optimize("no-stack-protector")
  9. #pragma GCC optimize("unroll-loops")
  10. // #pragma GCC optimize("Ofast")
  11. // #pragma GCC target("tune=native")
  12. // #pragma GCC target("avx,avx2,fma")
  13.  
  14. #include <bits/stdc++.h>
  15.  
  16. using namespace std;
  17.  
  18. #define ENV defined(LOCAL)
  19. #define el cout << '\n'
  20. #define ll long long
  21. #define ull unsigned ll
  22. #define vi vector <int>
  23. #define vl vector <ll>
  24. #define vvi vector <vector <int>>
  25. #define vvl vector <vector <ll>>
  26. #define mts multiset
  27. #define mtm multimap
  28. #define ump unordered_map
  29. #define ust unordered_set
  30. #define umts unordered_multiset
  31. #define umtm unordered_multimap
  32. #define priq priority_queue
  33.  
  34. template <typename T>
  35. T fgcd(T a, T b) {
  36. if (!a || !b) return a | b;
  37. unsigned shift = __builtin_ctzll(a | b);
  38. a >>= __builtin_ctzll(a);
  39. while (b) {
  40. b >>= __builtin_ctzll(b);
  41. if (a > b) swap(a, b);
  42. b -= a;
  43. }
  44. return a << shift;
  45. }
  46. template <typename T> T lcm(T a, T b) { return a * (b / fgcd(a, b)); }
  47. template <typename T> void maximize(T& a, T b) { if (a < b) a = b; }
  48. template <typename T> void minimize(T& a, T b) { if (a > b) a = b; }
  49. template <typename T> double lg(T a, T b) { return log(b) / log(a); }
  50. template <typename T> bool equal(T a, T b) { return abs(a - b) <= 1e-9; }
  51.  
  52. const int MOD = 1e9 + 7;
  53. const int INF = 1e9;
  54. const int LIMIT = 1e6 + 5;
  55.  
  56. #if ENV
  57. void open(const string& file) {
  58. freopen((file + ".inp").c_str(), "r", stdin);
  59. freopen((file + ".out").c_str(), "w", stdout);
  60. }
  61. auto start = clock();
  62. void time() { cout << "\n\n[rt] " << 1.0 * (clock() - start) / CLOCKS_PER_SEC; }
  63. #endif
  64.  
  65. signed main() {
  66. cin.tie(nullptr), cout.tie(nullptr)
  67. -> ios_base::sync_with_stdio(false);
  68.  
  69. #if ENV
  70. open("main");
  71. srand(time(nullptr));
  72. #endif
  73.  
  74. vi divs(LIMIT);
  75. for (int i = 1; i * i <= LIMIT; ++i) {
  76. // đánh dấu các con j nhận i là ước
  77. for (int j = i * i; j <= LIMIT; j += i) {
  78. if (j == i * i) ++divs[j]; // +1 đơn vị vào (j nhận i là ước và j = i * i)
  79. else divs[j] += 2; // +2 đơn vị vào vì j nhận i và j / i là ước)
  80. }
  81. }
  82.  
  83.  
  84. #if ENV
  85. time();
  86. #endif
  87.  
  88. return 0;
  89. }
Success #stdin #stdout 0.02s 6844KB
stdin
Standard input is empty
stdout
Standard output is empty