Problem 10
module Problem_0010 (* 【問題】 10以下の素数の和は2 + 3 + 5 + 7 = 17である. 200万以下の全ての素数の和を計算しなさい. A. 142913828922L 694 ms *) // ぱくりコード // http://blogs.msdn.com/b/mpeck/archive/2009/03/03/solving-problems-in-csharp-and-fsharp-part-1.aspx open System.Collections let getPrimes (max : int64) = let primes = new BitArray(int(max+1L), true) seq { 2L .. max } |> Seq.filter (fun n -> let n2 = int n if primes.[n2] then for i in (n*n)..n..max do primes.[int i] <- false primes.[n2]) let run() = getPrimes 2000000L |> Seq.reduce((+))