我试图得到从 0 到 2 000 000 的所有素数的总和
这是我的代码:
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 我会得到素数列表