diff --git a/src/is_prime.rs b/src/is_prime.rs index 5780bd1..9a9b0d4 100644 --- a/src/is_prime.rs +++ b/src/is_prime.rs @@ -11,6 +11,10 @@ pub mod is_prime { if BigUint::from(4u8) > *number { return true; } + + if number.sqrt().pow(2) == *number { + return false; + } let two = BigUint::from(2u8); @@ -22,7 +26,7 @@ pub mod is_prime { let one = BigUint::from(1u8); let zero = BigUint::from(0u8); - let sqrtnum = number.sqrt()+&one; + let sqrtnum = number.sqrt()+&one; //fake ceil function let mut is_prime = true; loop { i = i + &one;