1595:Prime Cuts

keyword

素数 C++

概要

整数N(<1000)、C(

int main(){
    ps.PB(1);
    primeTable(1000);
    int n,c,i,l,st,ed,cnt=0;

    while(scanf("%d%d",&n,&c)!=EOF){
        if(cnt++) printf("\n");
        printf("%d %d: ",n,c);
        l = distance(ps.begin(), upper_bound(ALL(ps),n));

        if(l&1){
            st = max(0,(l>>1)-c+1);
            ed = min(l-1,(l>>1)+c-1);
        }
        else{
            st = max(0,(l>>1)-c);
            ed = min(l-1,(l>>1)+c-1);
        }

        for(i=st;i<=ed;i++){
            printf("%d",ps[i]);
            if(i==ed)printf("\n");
            else printf(" ");
        }

    }

    return 0;
}