diff --git a/solutions/nextprime/src/lib.rs b/solutions/nextprime/src/lib.rs index d55940d0..198d0605 100644 --- a/solutions/nextprime/src/lib.rs +++ b/solutions/nextprime/src/lib.rs @@ -1,24 +1,3 @@ pub fn next_prime(nbr: u64) -> u64 { - if is_prime(nbr) { - return nbr; - } - next_prime(nbr + 1) -} - -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; - } + (nbr.max(2)..).find(|&n| (2..).take_while(|d| d * d <= n).all(|d| n % d != 0)).unwrap() }