for(it1=prime.begin();it1<prime.end();it1++){
for(it2=it1+1;it2<prime.end();it2++){
if(*it2%*it1==0){
prime.erase(it2);
}
}
if(*it1<1000)
prime.erase(it1);
}
在上面的代码片段中,我正在删除素数向量 2 到 9999(Eratosthenes 筛)中已经存在的数字的倍数。我也只删除了大于 1000 的数字,但不知何故这些数字并没有被删除。
有人可以解释一下为什么吗?
提前致谢。