Advertisement
Brunplunsu

primeList

Apr 24th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. is_prime    :: Integer -> Bool
  2. is_prime x  = is_prime_iter x 2
  3.     where
  4.         is_prime_iter           :: Integer -> Integer -> Bool
  5.         is_prime_iter x y       | 2*y > x       = True
  6.                                 | mod x y /= 0  = is_prime_iter x (y+1)
  7.                                 | otherwise     = False
  8.  
  9. primeList       :: Integer -> [Integer]
  10. primeList 0     = []
  11. primeList cnt   = ghost cnt 2
  12.     where
  13.         ghost           :: Integer -> Integer -> [Integer]
  14.         ghost 0   lst   = []
  15.         ghost cnt lst   | is_prime (lst)        = lst : ghost (cnt-1) (lst+1)
  16.                         | otherwise             = ghost  cnt    (lst+1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement