我对Haskell很新,我只想找到前200万个素数的总和.我正试图用筛子生成素数(我想是Eratosthenes的筛子?),但它真的很慢,我不知道为什么.这是我的代码.
sieve (x:xs) = x:(sieve $ filter (\a -> a `mod` x /= 0) xs) ans = sum $ takeWhile (<2000000) (sieve [2..])
提前致谢.
primes haskell sieve-of-eratosthenes
haskell ×1
primes ×1
sieve-of-eratosthenes ×1