0から2000000までのすべての素数の合計を取得しようとしています
これは私のコードです:
let getPrimesUpTo (x : System.Int32) =
let upperBound = Convert.ToInt32(Math.Sqrt(Convert.ToDouble(x)))
let allNumbers = ref [1..x] in
for div = 2 to upperBound do allNumbers := List.filter (fun num -> (num % div <> 0 || div >= num)) !allNumbers
allNumbers
let sop =
let nums = !(getPrimesUpTo 2000000)
List.sum nums
実行すると、「算術演算でオーバーフローが発生しました」というメッセージが表示されます。
List.sumを実行しないと、素数のリストが表示されます