我在 F# 中的质数检查器遇到了一些问题。它似乎没有给出正确的结果,所以我猜我在某个地方搞砸了逻辑,但我不知道在哪里。该实现是一种简单的暴力破解,因此逻辑并不复杂,而且我之前在命令式语言中使用 for 循环实现了类似的解决方案。
let rec isPrime iterator (n : int) =
match iterator with
| 1 -> isPrime (iterator + 1) n
| a when a = n -> isPrime (iterator + 1) n
| _ -> match n % iterator = 0 with
| true -> false
| false -> isPrime (iterator + 1) n