summaryrefslogtreecommitdiff
path: root/haskell/p10.hs
diff options
context:
space:
mode:
Diffstat (limited to 'haskell/p10.hs')
-rw-r--r--haskell/p10.hs12
1 files changed, 12 insertions, 0 deletions
diff --git a/haskell/p10.hs b/haskell/p10.hs
new file mode 100644
index 0000000..e7a7c85
--- /dev/null
+++ b/haskell/p10.hs
@@ -0,0 +1,12 @@
+sieve :: Int -> [Int]
+sieve max = sieve_l [2..max] (floor . sqrt . fromIntegral $ max)
+ where
+ sieve_l [n] _ = [n]
+ sieve_l (n:xl) max_sqrt
+ | n > max_sqrt = n:xl
+ | otherwise = n : sieve_l (filter ((/= 0).(`mod` n)) xl) max_sqrt
+
+p10 :: Int
+p10 = sum $ sieve 2000000
+
+main = putStrLn $ "Solution: " ++ show p10