在haskell中计算素数

时间:2016-05-04 01:54:35

标签: haskell primes

我希望计算一个给定的整数在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。我认为错误在于模块化算术,但我不确定。我的程序中的模块化语句有什么问题吗?

0 个答案:

没有答案