2 条题解

  • 1
    @ 2022-11-18 18:17:36

    辗标算!

    康康这个

    直接取 f(x)=1f(x)=1 ,则 g[n]g[n] 就是质数个数

    复杂度 Θ(n34log2n)\Theta(\frac{n^{\frac{3}{4}}}{\log_2 n})

    10710^7 以内跑的飞快

    • 0
      @ 2022-10-20 17:15:04
      #include <bits/stdc++.h>
      using namespace std;
      const int MAXN = 10'000'000;
      bool p[MAXN + 1];
      //筛出 1~n 中的每个数是否为质数
      void get_primes(int n)
      {
          //初始化
          p[0] = p[1] = false;
          for (int i = 2; i <= n; i++)
              p[i] = true;
          //筛
          for (int i = 2; i <= n; i++)
              if (p[i])
                  for (int j = i + i; j <= n; j += i)
                      p[j] = false;
      }
      int main()
      {
          int n;
          cin >> n;
          get_primes(n);
          int ans = 0;
          for (int i = 1; i <= n; i++)
              ans += p[i];
          cout << ans << "\n";
          return 0;
      }
      
      • 1

      信息

      ID
      1107
      时间
      1000ms
      内存
      256MiB
      难度
      5
      标签
      递交数
      118
      已通过
      41
      上传者