8 lines
260 B
Text
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
|