RosettaCodeData/Task/Amicable-pairs/Ela/amicable-pairs.ela
2023-07-01 13:44:08 -04:00

8 lines
260 B
Text

open monad io number list
divisors n = filter ((0 ==) << (n `mod`)) [1..(n `div` 2)]
range = [1 .. 20000]
divs = zip range $ map (sum << divisors) range
pairs = [(n, m) \\ (n, nd) <- divs, (m, md) <- divs | n < m && nd == m && md == n]
do putLn pairs ::: IO