我希望计算一个给定的整数在Haskell中是否为素数:
--primes
isPrime :: (Integral a) => a -> Bool
isPrime n | n < 4 = n > 1
isPrime n = all ((/=0).mod (n-1)) $ 2:3:[x + i | x <- [6,12..s], i <- [-1,1]]
where s = floor $ sqrt $ fromIntegral n
但是,在输入131
上运行此操作会产生False
。我认为错误在于模块化算术,但我不确定。我的程序中的模块化语句有什么问题吗?