15 lines
378 B
Haskell
15 lines
378 B
Haskell
import Data.List
|
|
import Data.Maybe
|
|
import Euler
|
|
|
|
isAbundant :: Int -> Bool
|
|
isAbundant n = sum (properDivisors n) > n
|
|
|
|
abundant :: [Int]
|
|
abundant = filter isAbundant [1..]
|
|
|
|
abundantPair :: Int -> Maybe (Int, Int)
|
|
abundantPair n = listToMaybe [ (p,q) | p <- takeWhile (<n) abundant, let q = n - p, isAbundant q ]
|
|
|
|
main = print $ sum $ filter (isNothing . abundantPair) [1..28123]
|