おそ
Project Eulerの問題をできるだけHaskellで解こうとしてるけど、Haskellで速いプログラムを書けません。ヘタレ。21とか
pdivs n = [x | x <- [1 .. n `div` 2], n `mod` x == 0] amicable a = sum (pdivs a') == a && a' /= a where a' = sum (pdivs a) > sum [x | x <- [1 .. 10000], amicable x]
はい直感的過ぎてすみませんね(^o^) とか言ってる間にぐぐったら
http://haskell.g.hatena.ne.jp/nobsun/20080314/p1
というのを発見。簡単な工夫で速くなる良い例だと思いました。反省。もう少し考えて組め俺。でもナイーブな実装だと簡単に書けちゃうのはHaskellの良いところですよねーごめんうそそんなわけARIKA。
あとメモ探(memoizationのこt)したいんだけどHaskellでメモ探する方法が良くわからんので勉強しないとダメですね。春休み中にHaskellの機能に一通り触れておきたい。