modified sieve algo