从网上偶然发现,稍加修改为函数,以备后用[感谢http://blog.ncuhome.cn/niko/Logs/2006/6/1/8513.html博主的收集] 方法A原理:不能被2 ~ n-1整除
Private Function Check(lngTmp As Long) As Boolean
Dim lngIndex As Long, lngMax As Long
lngMax = lngTmp - 1
For lngIndex = 2 To lngMax
If lngTmp Mod lngIndex = 0 Then
Check = False
Exit For
End If
Next lngIndex
If lngIndex >= lngTmp Then
Check = True
Else
Check = False
End If
End Function
方法B原理:不能被2 ~ Sqr(n)整除 写法A:
Private Function CheckA(lngTmp As Long) As Boolean
Dim lngIndex As Long, lngMax As Long
lngMax = Int(Sqr(lngTmp))
For lngIndex = 2 To lngMax
If lngTmp Mod lngIndex = 0 Then Exit For
Next
If lngIndex > lngMax Then
CheckA = True
Else
CheckA = False
End If
End Function
写法B:
Private Function CheckA(lngTmp As Long) As Boolean
Dim lngIndex As Long, lngMax As Long
lngIndex = 2: lngMax = Int(Sqr(n))
Do While lngIndex <= lngMax
If lngTmp Mod I = 0 Then Exit Do
lngIndex = lngIndex + 1
Loop
If lngIndex > lngMax Then
CheckA = True
Else
CheckA = False
End If
End Function