我有一段代码可以检查给定数字是否为素数:
If x Mod 2 = 0 Then
Return False
End If
For i = 3 To x / 2 + 1 Step 2
If x Mod i = 0 Then
Return False
End If
Next
Return True
我只将它用于数字 1E7 <= x <= 2E7
.然而,它非常慢——我几乎不能每秒检查 300 个数字,所以检查所有 x
需要超过 23 天...
有人可以提供一些改进建议或说明我这样做可能是多余的吗?
最佳答案
这是检查素数的通用算法。 如果您想批量检查质数,请使用算法 http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
关于vb.net - 素数检查器慢得令人难以置信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983805/