警示后人!
查看原帖
警示后人!
1068756
George_qwe楼主2024/10/29 19:18

如果你用的是双向链表,如

int next_[N];//指下一个 
int from_[N];//上一个

在删除倍数时,要判断是否已被删除

N=1e7+5;

while(m<N){
	if(!isprime[m] && cha(m)){//判断是否已被删除
		int i=1;
		while(m*i<N){
			if(!isprime[m*i]){
				isprime[(m*i)]=1;
				next_[ from_[m*i] ]=next_[m*i];
				from_[ next_[m*i] ]=from_[m*i];
			}
			i++;
		}
	}
		
	m++;
}
2024/10/29 19:18
加载中...