编程:求第100个质数(用VB)

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:26:03

2 3 5 7........慢慢数下去

Dim i, j As Integer
Dim flag As Boolean

For i = 2 To 1000
flag = False
For j = 2 To i / 2
If i Mod j = 0 Then
flag = True
Exit For
End If
Next j
If flag = False Then
n = n + 1
If n = 100 Then
Print i
End if
End If
Next i

回答者:NO1_Forever - 见习魔法师 二级 8-18 13:55
好像不对!多做了很多事情! 好像应该是 某个数的根号为界限

直接调用:
MsgBox GetPrimeCount(100)

这是求质数个数的函数,用爱氏筛法,速度很快。
Private Function GetPrimeCount(lMax As Long) As Long

Dim lArrayA() As Long, lArrayB() As Long
Dim lNumCur As Long

Dim i As Long, j As Long, k As Long

'2和奇数的个数
If lMax Mod 2 = 0 Then lMax = lMax \ 2 Else lMax = lMax \ 2 + 1

ReDim lArrayA(1 To lMax)
ReDim lArrayB(1 To lMax)

lNumCur = 2

lArrayA(1) = 2
lArr