vb.net - 素数检查器慢得令人难以置信

标签 vb.net algorithm primes

我有一段代码可以检查给定数字是否为素数:

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/

相关文章:

vb.net - "Access to the file path is denied"

image - 先进的图像色彩算法

c++ - 实现二进制搜索猜谜游戏

java - 质数计算的最短代码

mysql - 将 MySQL 数据库与 VB.NET 连接的 ConnectionString 是什么

vb.net - 如何回滚失败的 InsertOnSubmit? (VB.NET LINQ)

C#相对于VB的优势

php - 重构 2 个 while 循环,使它们完成

java - 如何打印所有回文数?

java - Android for 循环不像 java 那样工作