покритикуйте функцию определения простоты числа
в ней есть один недостаток. какой именно?
isPrime :: Integer -> Bool isPrime 2 = True isPrime x = length failedDividerCandidates == length dividerCandidates where failedDividerCandidates = takeWhile (\z -> x `mod` z /= 0) dividerCandidates dividerCandidates = [2..(floor $ sqrt $ fromIntegral x)]