原です。

>投稿してくれた方にはもれなく Haskell による驚くべき解答をプレゼ
>ントします。

今回は特別に参加者全員にプレゼントいたします。:-)

module Main where
main = print (take 100 (ramanujan (\(a,b) -> a^3 + b^3)))
ramanujan f = [(x,y) | (x,y)<- zip s (tail s), f x == f y]
    where s = fsort f 1
fsort f k = (k,k) : fmerge f [(k,b) | b<-[k+1..]] (fsort f (k+1))
fmerge f (x:xs) (y:ys)
  | f x <= f y = x : fmerge f xs (y:ys)
  | otherwise  = y : fmerge f (x:xs) ys