>>553は篩ですな。
計算だけじゃなくて表示もすると、
main=(putStr.show)let e(a:x)=a:e[y|y<-x,y`rem`a/=0]in e[2..]
ちょっと縮めて(改悪)
main=(putStr.show)[x|x<-[2..],all(/=0).rem x)[2..x-1]]
>>554と同じ長さか…