Prime numbers using the Sieve of Eratosthenes


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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s