Mersenne primes: Difference between revisions
Content added Content deleted
Line 563: | Line 563: | ||
lucasLehmer :: Int -> Bool |
lucasLehmer :: Int -> Bool |
||
lucasLehmer p = go |
lucasLehmer p = go [1..p-2] == 0 |
||
where |
where |
||
go = foldr (\ |
go = foldr (\_ b -> (b^2 - 2) `mod` m) 4 |
||
m = 2 |
m = 2^p - 1 |
||
main = mapM_ (printf "M %d\n") $ take 20 mersenne |
main = mapM_ (printf "M %d\n") $ take 20 mersenne |