Prime enumeration
Function
definition | $p : {\mathbb N}_+\to{\mathbb P}$ |
definition | $p(1):=2$ |
definition | $p(n+1):={\mathrm{min}}({\mathbb P}\setminus{X_n})$ |
with | $X_n\equiv\{m\in{\mathbb P}\mid m\le p(n)\}$ |
Code
primes0 :: [Integer] primes0 = filter prime0 [2..] prime0 :: Integer -> Bool prime0 n | n < 1 = error "not a positive integer" | n == 1 = False | otherwise = ld n == n
using Least divisor function:
divides :: Integral a => a -> a -> Bool divides d n = rem n d == 0 ld :: Integral a => a -> a ld n = ldf 2 n ldf :: Integral a => a -> a -> a ldf k n | divides k n = k | k^2 > n = n | otherwise = ldf (k+1) n
using Set of divisors function:
divides :: Integral a => a -> a -> Bool divides d n = rem n d == 0