为什么欧拉筛法最后两个测试点MLE了
  • 板块P3912 素数个数
  • 楼主Mr_yeh
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/4/28 19:59
  • 上次更新2023/10/23 17:20:29
查看原帖
为什么欧拉筛法最后两个测试点MLE了
852827
Mr_yeh楼主2023/4/28 19:59

以下是代码

#include<bits/stdc++.h>
using namespace std;
const unsigned int N=(int)1e8+10;
unsigned int a[N],b[N];
int main(){
	unsigned n,t=0;
	scanf("%u",&n);
	for(unsigned int i=2;i<=n;i++){
		if(!a[i]) b[++t]=i;
		for(unsigned int j=1;b[j]*i<=n;j++){
			a[b[j]*i]=1;
			if(i%b[j]==0){
				break;
			}
		}
	}
	printf("%u",t);
	return 0;
}
2023/4/28 19:59
加载中...