diff --git a/src/worker.rs b/src/worker.rs index 033925c..886bb87 100644 --- a/src/worker.rs +++ b/src/worker.rs @@ -30,11 +30,14 @@ pub fn work_segment(known_primes:&Vec, start:usize, end:usize) -> Vec for p in known_primes { let prime = *p as usize; - let mut mult = prime * prime; + let modu = start % prime; + let mut mult = if modu == 0 { + start + } else { + start + prime - modu + }; while mult < end { - if mult > start { - sieve[mult - start] = false; - } + sieve[mult - start] = false; mult += prime; } }