diff --git a/src/worker.rs b/src/worker.rs index 886bb87..9ee1bfc 100644 --- a/src/worker.rs +++ b/src/worker.rs @@ -28,8 +28,14 @@ pub fn work_segment(known_primes:&Vec, start:usize, end:usize) -> Vec let mut sieve = vec![true; end - start]; let mut found_primes = Vec::new(); + let sqrt_end = f64::sqrt(end as f64) as usize; + for p in known_primes { let prime = *p as usize; + if prime > sqrt_end { + break; + } + let modu = start % prime; let mut mult = if modu == 0 { start