救救孩子吧
查看原帖
救救孩子吧
326796
WRTLEO2楼主2020/5/24 17:36

哇,真是受不了了,#3WA,其余TLE,求助

#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long LL;
int prime[50000010],is_prime[100000010];
int n,num,m,k;
void get_prime(){
	num=1;
	rep(i,2,n) is_prime[i]=true;//首先先把每一个数标记成素数
	//memset(is_prime[i],true,sizeof(is_prime));
	rep(i,2,n){
		if(is_prime[i]) prime[num++]=i;//如果这个数是素数,就放进素数表
		rep(j,1,num-1){
			if(i*prime[j]>n) break;//如果判断某一个数时,从某个素数开始>n了,那么乘后面的素数时,一定超出了范围.
			is_prime[i*prime[j]]=false;//先把满足条件的标记成合数.
			if(i%prime[j]==0) break;
		}
	}
} 
int main(){
	scanf("%d%d",&n,&m);
	rep(i,1,m) scanf("%d",&k);
	get_prime();
	rep(i,1,k){
		if(i<k) cout<<prime[i]<<endl;
		else cout<<prime[i];
	} 
	return 0;
	
}

刚学的,新鲜热乎,快帮帮我

2020/5/24 17:36
加载中...