보통 에라토스테네스의 체를 구현할 때면
위와 같이 구현하는데
최적화 시
와 같다.
1번은 합성수 의 약수를 라고 할 때
중 어느 하나는 이하
어느 하나는 이상 이기 때문에
까지만 확인해주면 된다.
2번은 이미 전 루프들에서 전에 있는 배수들을 다 확인했기 때문에
에서 루프를 시작한다.
코드는 다음과 같다.
void do_sieve(int n){
int t=sqrt(n);
for(int i=2;i<=t;i++){
if(sieve[i]) continue;
for(int j=i*i;j<=n;j+=i) sieve[j]=1;
}
}