factors x = filter [1..x-1] (\y -> x `mod` y == 0) f x | x < 1 = error "argument to f must be positive" f x = odd x && sum (factors x) == x