New Version 7.0!

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

Download now!

Get from Nuget

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