为什么这样能过???
查看原帖
为什么这样能过???
661638
lkjzyd20楼主2022/7/24 21:45

rtrt

#include <stdio.h>

const int N = 1e8 + 1;

bool prime[N];
int a[0];
int n, Q;
int k;
int tot;

void sushu (int) ;

main () {
    scanf ("%d %d", &n, &Q) ;
    
    sushu (n) ;
    
    for (; Q; -- Q) {
        scanf ("%d", &k) ;
        
        printf ("%d \n", a[k]) ;
    }
}

void sushu (int n) {
    for (int i = 2; i * i <= n; ++ i)
        if (!prime[i])
            for (int j = i + i; j <= n; j += i)
                prime[j] = 1;
    
    for (int i = 2; i <= n; ++ i)
        if (!prime[i])
            a[++ tot] = i;
}
2022/7/24 21:45
加载中...