专栏文章
T549092 质数搜寻 题解
题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqehbn2
- 此快照首次捕获于
- 2025/12/04 03:28 3 个月前
- 此快照最后确认于
- 2025/12/04 03:28 3 个月前
c++:
CPP#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e8 + 10;
bool is_prime[MAXN];
void sieve() {
memset(is_prime, true, sizeof(is_prime));
is_prime[0] = is_prime[1] = false;
for (int i = 2; i * i < MAXN; ++i) {
if (is_prime[i]) {
for (int j = i * i; j < MAXN; j += i) {
is_prime[j] = false;
}
}
}
}
int main() {
int t;
cin >> t;
sieve();
for (int i = 0; i < t; ++i) {
int n;
cin >> n;
for (int j = 0; j < n; ++j) {
int op;
cin >> op;
if (op == 1) {
int x, y;
cin >> x >> y;
int prime_count = 0;
for (int num = x; num <= y; ++num) {
if (is_prime[num]) {
prime_count++;
}
}
cout << prime_count << endl;
} else if (op == 2) {
int z;
cin >> z;
vector<int> arr(z);
for (int k = 0; k < z; ++k) {
cin >> arr[k];
}
for (int num : arr) {
cout << (is_prime[num] ? 1 : 0) << " ";
}
cout << endl;
}
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...