我想從0所有質數的總和爲2 000 000F#總和爲Int32列表拋出算術運算導致溢出
這是我的代碼:
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我得到的素數
雅,這可以工作,但可以'工作'與int32 – Omu
工作,而且,我得到一個Int32數字列表,唯一的問題是List.Sum – Omu
@ChuckNorris:不熟悉F#,你可以指定一個轉換作爲List.sum調用的一部分嗎?例如'List.sum nums Convert.ToInt64' –