1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
Function Slow(ByVal n As Integer) As Boolean
If n Mod 2 = 0 OrElse n Mod 3 = 0 OrElse n Mod 7 = 0 OrElse n Mod 5 = 0 Then Return False
For i As Short = 11 To Math.Sqrt(n) Step 2
If n Mod i = 0 Then Return False
Next
Return True
End Function
Function Fast(ByVal n As Integer) As Boolean
If n Mod 2 = 0 OrElse n Mod 3 = 0 OrElse n Mod 7 = 0 OrElse n Mod 5 = 0 Then Return False
Dim r As Single = Math.Sqrt(n), f As Short = 11
If r Mod 1 = 0 Then Return False
While f <= r
If n Mod f = 0 Then Return False
f += 2
If n Mod f = 0 Then Return False
f += 4
End While
Return True
End Function
|