freemo
2/25/2018 - 10:19 AM

Perfect Number in Haskell

Perfect Number in Haskell

let dividends y = tail [ quot x z | z <- [1..(floor (sqrt (fromIntegral y)))], x <- [y, z^2], (mod y z) == 0]
let perfect y = sum (dividends y) == y
let perfectlist z = [y | y <-[1..z], perfect y]

perfectlist 4
[1,6,28,496,8128]