社区讨论

全RE求调

P3383【模板】线性筛素数参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mk6ii3ca
此快照首次捕获于
2026/01/09 14:45
2 个月前
此快照最后确认于
2026/01/11 16:25
2 个月前
查看原帖
C
#include <stdio.h>
#include <stdlib.h>

char nums[10000010] = {0};
int Prime[8000000] = {0};

void E_sieve(int n){
    nums[0] = 1;
    nums[1] = 1;
    int idx = 0;
    for(int i = 2;i <= n;i++){
        if(!nums[i]){
            Prime[idx++] = i;
        }
        //内层循环用以遍历已确定是质数的数组
        for(int j = 0; j < idx && 1LL*i*Prime[j] <= n*1LL;j++){
            nums[Prime[j]*i] = 1;
            if(i%Prime[j] == 0){
                break;
            }
        }
    }
}

int main(){
    int n,q,k;
    scanf("%d%d",&n,&q);
    E_sieve(n);
    while(q--){
        scanf("%d",&k);
        printf("%d\n",Prime[k-1]);
    }
    return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...