From 9187f9534003d25e061527396c9f04a5c75b7c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Thu, 5 Mar 2026 11:34:22 +0100 Subject: [PATCH] Store squared limit to reduce operations. --- src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index fc7a2de..8ca1409 100644 --- a/src/main.rs +++ b/src/main.rs @@ -93,10 +93,11 @@ fn main() { } else { opts.num + 1 }; + let mut squared_limit = 0; let prime_list = Arc::new(RwLock::new(prime_list_raw)); loop { - if (start < opts.num) && ((*prime_list.read().unwrap().last().unwrap_or(&0)).pow(2) >= (end as u64) || + if (start < opts.num) && (squared_limit >= (end as u64) || (prime_list.read().unwrap().is_empty() && pending_tasks == 0)) { let prime_list_clone = Arc::clone(&prime_list); @@ -156,6 +157,8 @@ fn main() { None => break, }; } + + squared_limit = prime_list.read().unwrap().last().unwrap().pow(2); } } else { // no more tasks to be added, and all tasks have been processed