-- za 01 14:23 < flok> 2011 is a #prime number and also the sum of 11 consecutive -- prime numbers: -- 2011=157+163+167+173+179+181+191+193+197+199+211 -- by Péter D {- $ hugs Primes.hs Main> solution 2011 ^C{Interrupted!} Main> solution 20 [] Main> solution 23 [[5,7,11],[23]] -} import Data.List divides m n = mod n m == 0 divisors n = [ m | m <- [ 2 .. div n 2 ] , divides m n ] primes = [ n | n <- [2..], null (divisors n) ] solution y = concat ( map f ( tails ( takeWhile (<=y) primes ))) where f xs = [ys | ys <- inits xs , sum ys == y]