Problem 10
Ploblem 10です。
200万以下の全ての素数の和を求める問題です。
primes = 2:primes' where primes' = 3:sieve 0 5 sieve i x = filter isPrime [x, x+2..p*p-2] ++ sieve (i+1) (p*p+2) where (ps,p:_) = splitAt i primes' isPrime x = all ((/=0).rem x) ps main = print . sum . takeWhile (<=2000000) $ primes
やっぱり遅い
結構時間かかります。
素数をはやく求めるのはどうしたらいいのかな?