求助求助qwq
查看原帖
求助求助qwq
559503
j_steady楼主2022/2/26 10:44
#define MAXN 100000005

using namespace std;
bool mark[MAXN];
//bitset<MAXN> mark;
int n;
int prime[MAXN];
int cnt = 0;
//void ola(int n){
//	//int cnt =0 ;
////	memset(mark,0,sizeof (mark));
////	mark[0]=mark[1]=1;
//	for (int i = 2;i < n;i++){
//		if (mark[i]==0){
//			prime[cnt++]=i;
//		} 
//		for (int j = 0;j < cnt && prime[j]*i < n;j ++){
//			mark[i*prime[j]]=1;
//			if (i%prime[j]==0){
//				break;
//			}
//		}
//	} 
//	//return cnt;//素数个数 
//} 
int main (){
	scanf ("%d",&n);
	for (int i = 2;i < n;i++){
		if (mark[i]==0){
			prime[cnt++]=i;
		} 
		for (int j = 0;j < cnt && prime[j]*i < n;j ++){
			mark[i*prime[j]]=1;
			if (i%prime[j]==0){
				break;
			}
		}
	}
	
	 printf ("%d",cnt);
	return 0;
}

wa了#8,根据数据加上

然后AC了

这是为什么!!

2022/2/26 10:44
加载中...