From 345f4cd141916977ec1a09da03242103c421061e Mon Sep 17 00:00:00 2001 From: Colin Atkinson Date: Fri, 30 Dec 2016 17:18:42 -0500 Subject: [PATCH] Fix bug in isProbablyPrime for small numbers Fix bug in isProbablyPrime where too many iterations were specified for numbers less than 100 Add clause to isProbablyPrime to use hardcoded values <= 2903 --- Crypto/Number/Prime.hs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Crypto/Number/Prime.hs b/Crypto/Number/Prime.hs index c993648..10e0be0 100644 --- a/Crypto/Number/Prime.hs +++ b/Crypto/Number/Prime.hs @@ -38,7 +38,8 @@ import Data.Bits isProbablyPrime :: Integer -> Bool isProbablyPrime !n | any (\p -> p `divides` n) (filter (< n) firstPrimes) = False - | primalityTestFermat 50 (n`div`2) n = primalityTestMillerRabin 30 n + | n >= 2 && n <= 2903 = True + | primalityTestFermat 50 (n `div` 2) n = primalityTestMillerRabin 30 n | otherwise = False -- | generate a prime number of the required bitsize (i.e. in the range