1 条题解
-
1
参考答案:
#include<iostream> using namespace std; typedef long long LL; const int N = 1e6 + 10; LL phi[N], primes[N], st[N]; LL n; LL cnt, res; void f(LL n) { phi[1] = 1; for (int i = 2; i <= n; ++i) { if (!st[i]) { primes[++cnt] = i; phi[i] = i - 1; } for (int j = 1; primes[j] <= n / i; ++j) { st[primes[j] * i] = 1; if (i % primes[j] == 0) { phi[primes[j] * i] = primes[j] * phi[i]; break; } else phi[primes[j] * i] = phi[i] * (primes[j] - 1); } } } int main() { cin >> n; f(n); for (int i = 1; i <= n; ++i) res += phi[i]; cout << res << endl; return 0; }
- 1
信息
- ID
- 5367
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者