📂 导航
🏫 班级管理 📚 学习中心 📝 题单 💻 编程题 🐾 宠物 💬 私信 📒 我的笔记 ⭐ 积分管理 🔐 权限管理

📝 ### 第27题 **阅读程序(三)**(下列程序供第 27~32 题使用;判断题正确填√,错误填×) ```cpp 01 #include <iostream> 02 #include <vector> 03 using namespace std; 04 05 const int …

📂 C++  ·  ⚡ 难度 4  ·  ❓ 判断题  ·  📖 CSP-J考前模拟1
🏷️ CSP-J,初赛,数论,程序阅读
📖 CSP-J考前模拟1

### 第27题

**阅读程序(三)**(下列程序供第 27~32 题使用;判断题正确填√,错误填×)

```cpp
01 #include <iostream>
02 #include <vector>
03 using namespace std;
04
05 const int MAXN = 1000000;
06 bool is_prime[MAXN + 5];
07 int primes[MAXN + 5], cnt = 0;
08 int phi[MAXN + 5];
09
10 void sieve(int n) {
11 for (int i = 0; i <= n; i++) is_prime[i] = true;
12 is_prime[0] = is_prime[1] = false;
13 phi[1] = 1;
14
15 for (int i = 2; i <= n; i++) {
16 if (is_prime[i]) {
17 primes[cnt++] = i;
18 phi[i] = i - 1;
19 }
20 for (int j = 0; j < cnt && i * primes[j] <= n; j++) {
21 is_prime[i * primes[j]] = false;
22 if (i % primes[j] == 0) {
23 phi[i * primes[j]] = phi[i] * primes[j];
24 break;
25 } else {
26 phi[i * primes[j]] = phi[i] * (primes[j] - 1);
27 }
28 }
29 }
30 }
31
32 int main() {
33 int n;
34 cin >> n;
35 sieve(n);
36 long long sum = 0;
37 for (int i = 1; i <= n; i++) {
38 sum += phi[i];
39 }
40 cout << sum << endl;
41 return 0;
42 }
```

**判断题**:该程序采用的素数筛法是**埃氏筛法(Eratosthenes Sieve)**。( )

🐛 反馈BUG