New Version 6.0!

Try it for free with our fully functional 60-day trial version.

Download now!

QuickStart Samples

Prime Numbers QuickStart Sample (Visual Basic)

Illustrates working with prime numbers and the IntegerMath class in the Extreme.Mathematics namespace in Visual Basic.

C# code F# code IronPython code Back to QuickStart Samples

Option Infer On

' We use classes from the Extreme.Mathematics.SpecialFunctions 
' namespace.
Imports Extreme.Mathematics

Namespace Extreme.Numerics.QuickStart.VB
    ' Illustrates working with prime numbers using the 
    ' IntegerMath class in the Extreme.Mathematics.SpecialFunctions 
    ' namespace of the Extreme Optimization Mathematics 
    ' Library for .NET.
    Module PrimeNumbers
        Sub Main()
            '
            ' Factoring numbers
            '

            ' The Factorize method returns an array containing the prime factors:
            Dim index As Int32
            Dim n As Int32 = 1001110110
            Dim factors As Int32() = IntegerMath.Factorize(n)

            Console.Write("{0} = {1}", n, factors(0))
            For index = 1 To factors.Length - 1
                Console.Write(" * {0}", factors(index))
            Next
            Console.WriteLine()

            ' Factors that occur multiple times is repeated as many times as necessary:
            n = 256 * 6157413
            factors = IntegerMath.Factorize(n)
            Console.Write("{0} = {1}", n, factors(0))
            For index = 1 To factors.Length - 1
                Console.Write(" * {0}", factors(index))
            Next
            Console.WriteLine()

            ' The 64bit version can safely factor numbers up to 48 bits long:
            Dim n2 As Int64 = 1296523 * 1177157L
            Dim factors2 As Int64() = IntegerMath.Factorize(n2)
            Console.Write("{0} = {1}", n2, factors2(0))
            For index = 1 To factors2.Length - 1
                Console.Write(" * {0}", factors2(index))
            Next
            Console.WriteLine()

            ' Let's try a longer number
            n2 = 4292017459171704241
            factors2 = IntegerMath.Factorize(n2)
            Console.Write("{0} = {1}", n2, factors2(0))
            For index = 1 To factors2.Length - 1
                Console.Write(" * {0}", factors2(index))
            Next
            Console.WriteLine()

            '
            ' Prime numbers
            '

            ' The IsPrime method verifies if a number is prime or not.
            n = 801853937
            Console.WriteLine("{0} is prime? {1}!", n, IntegerMath.IsPrime(n))
            n = 801853939
            Console.WriteLine("{0} is prime? {1}!", n, IntegerMath.IsPrime(n))

            ' MextPrime gets the first prime after a specified number. 
            ' You can call it repeatedly to get successive primes.
            ' Let's get the 10 smallest primes larger than one billion:
            Console.WriteLine("First 10 primes greater than 1 billion:")
            n = 1000000000
            For index = 1 To 10
                n = IntegerMath.NextPrime(n)
                Console.Write("{0,16}", n)
            Next
            Console.WriteLine()

            ' PreviousPrime gets the last prime before a specified number. 
            Console.WriteLine("Last 10 primes less than 1 billion:")
            n = 1000000000
            For index = 1 To 10
                n = IntegerMath.PreviousPrime(n)
                Console.Write("{0,16}", n)
            Next
            Console.WriteLine()

            Console.Write("Press Enter key to exit...")
            Console.ReadLine()
        End Sub

    End Module

End Namespace