sumDiv n = sum $ [x | x <- [1..n-1], mod n x == 0] friends :: [(Integer, Integer)] friends = filter (\(x, s) -> x < s && sumDiv s == x) $ map (\x -> (x, sumDiv x)) [1..] -- ideone не показывает вывод закрывшейся по таймауту проги --main = mapM print friends -- поэтому main = mapM print $ take 5 friends