社区讨论
数组过大 编译失败 求助
P3383【模板】线性筛素数参与者 6已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo3jhuoy
- 此快照首次捕获于
- 2023/10/24 07:39 2 年前
- 此快照最后确认于
- 2023/10/24 07:39 2 年前
确定是1e8了啊,怎么还会CE呢???
CPP#include<iostream>
#include<vector>
const int maxn = (int)1e8;
int p[maxn];
bool np[maxn] = {true};
long long ri(){
static char c;
static long long k;
static bool s;
k = 0, s = false, c = '\0';
while (c < '0' || c > '9') if ((c = getchar()) =='-') s = true;
while (c >= '0' && c <= '9'){
k = (k << 3) + (k << 1) + (c - '0');
c = getchar();
}
return s?-k:k;
}
void calcP(){
int num, k = 0;
for (num=2;num<maxn;num++){
if (!np[num]) p[k++] = num;
for (int i=0;i<k;i++){
np[num*k] = true;
if (num%k == 0) break;
}
}
}
int main(){
calcP();
int n, q;
std::cin >> n >> q;
while (q--){
std::cout << p[ri()] << std::endl;
}
}
回复
共 9 条回复,欢迎继续交流。
正在加载回复...