Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Collections
Public Class Tester
Public Shared Sub Main
Dim needBreak As Boolean = True
Console.WriteLine("Prime numbers using the ""Sieve of Eratosthenes""")
Dim index As Integer = 1
Dim counter As Integer
Do While (index < (MaxNumber - 1))
index += 1
If (PrimeStorage(index) = True) Then
For counter = index * 2 To MaxNumber - 1 Step index
PrimeStorage(counter) = False
Next counter
End If
Loop
For counter = 2 To 7999999
If (GetBit(counter) = 1) Then
If (counter < 50) Or (counter > 7999800) Then
Console.WriteLine(counter)
ElseIf (needBreak = True) Then
Console.WriteLine("...")
needBreak = False
End If
End If
Next counter
End Sub
Private Const MaxNumber As Integer = 8000000
Private Shared PrimeStorage As New BitArray(MaxNumber, True)
Public Shared Function GetBit(ByVal index As Integer) As Integer
If (PrimeStorage(index) = True) Then Return 1 Else Return 0
End Function
End Class
|