1 条题解

  • -1
    @ 2026-8-19 9:39:10
    #include<bits/stdc++.h>
    using namespace std;
    const int N =1e8+10;
    int vt[N],k;
    int pri[N];
    int main(){
    	vt[1]=1;vt[0]=1;int n;cin>>n;
    	for(int i=2;i<=n;i++){
    		if(vt[i]==0) pri[k++]=i;
    		for(int j=0;j<k;j++){
    			if(i*pri[j]>n) break; //超出范围 
    			vt[i*pri[j]]=1;
    			if(i%pri[j]==0) break;  //倍数也跳出 
    		}
    	}
    	for(int i=0;i<k;i++){
    		cout<<pri[i]<<" ";
    	}
    }
    

    信息

    ID
    402
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    140
    已通过
    5
    上传者