From 82e4555bc13de4ceee656c293bd80c1176df0812 Mon Sep 17 00:00:00 2001 From: Ayoub Ammar <162456634+kinoz01@users.noreply.github.com> Date: Sun, 10 Aug 2025 18:16:05 +0200 Subject: [PATCH] Update lib.rs simpler prevprime solution, with rust syntax --- solutions/previousprime/src/lib.rs | 35 ++++-------------------------- 1 file changed, 4 insertions(+), 31 deletions(-) diff --git a/solutions/previousprime/src/lib.rs b/solutions/previousprime/src/lib.rs index 0ced7e5f..629a3575 100644 --- a/solutions/previousprime/src/lib.rs +++ b/solutions/previousprime/src/lib.rs @@ -1,33 +1,6 @@ pub fn prev_prime(nbr: u64) -> u64 { - if nbr <= 2 { - return 0; - } - - let mut min_number = 2; - - for i in 2..nbr { - if is_prime(i) { - min_number = i; - } - } - - min_number -} - -fn is_prime(nbr: u64) -> bool { - if nbr > 0 { - if nbr <= 1 { - return false; - } - let mut d = 2; - while d * d <= nbr { - if nbr % d == 0 { - return false; - } - d += 1; - } - return true; - } else { - return false; - } + (2..nbr) + .rev() + .find(|&n| (2..).take_while(|d| d * d <= n).all(|d| n % d != 0)) + .unwrap_or(0) }