🚀 Continue learning → VB.NET 2026 Tutorial
Factors Finder

VB Factors Finder Application

Find all factors of any integer with interactive demo and code examples

Projectile Physics Principles

<

What are Factors?

Factors are numbers we can multiply together to get another number. For example, factors of 12 are:

1 × 12 = 12
2 × 6 = 12
3 × 4 = 12

So the factors of 12 are 1, 2, 3, 4, 6, and 12.

This program finds all factors of a number entered by the user. We use the simple logic that a number is divisible by all its factors. In programming terms, if number % factor == 0, then the divisor is a factor.

Interactive Factors Finder

Enter any positive integer to find its factors:

How it works:

The algorithm checks divisibility from 1 to the square root of the number for efficiency. For each divisor found, both the divisor and the quotient are added to the factors list.

Code Examples

Visual Basic 6

This VB6 code finds factors and displays them in a list box.

Private Sub cmdFindFactors_Click()
    ' Clear previous results
    lstFactors.Clear
    
    ' Get the number from text box
    Dim num As Long
    num = Val(txtNumber.Text)
    
    ' Always include 1 and the number itself
    lstFactors.AddItem "1"
    
    ' Find factors from 2 to square root of num
    Dim i As Long
    For i = 2 To Sqr(num)
        If num Mod i = 0 Then
            lstFactors.AddItem CStr(i)  ' Add divisor
            ' Add quotient if it's different
            If i <> num \ i Then
                lstFactors.AddItem CStr(num \ i)
            End If
        End If
    Next i
    
    ' Add the number itself
    lstFactors.AddItem CStr(num)
    
    ' Sort the factors
    Call SortListBox(lstFactors)
    
    ' Show factor count
    lblCount.Caption = CStr(lstFactors.ListCount) & " factors found"
End Sub

VB.NET

Modern VB.NET implementation with efficient algorithm.

Private Sub btnFindFactors_Click(ByVal sender As System.Object, 
                                 ByVal e As System.EventArgs) Handles btnFindFactors.Click
    
    ' Clear previous results
    lstFactors.Items.Clear()
    
    ' Parse input number
    Dim number As Long
    If Not Long.TryParse(txtNumber.Text, number) Or number < 1 Then
        MessageBox.Show("Please enter a valid positive integer")
        Return
    End If
    
    ' Create a list to store factors
    Dim factors As New List(Of Long)
    
    ' Add 1 and the number itself
    factors.Add(1)
    If number > 1 Then
        factors.Add(number)
    End If
    
    ' Find factors from 2 to square root of number
    Dim limit As Long = Math.Sqrt(number)
    For i As Long = 2 To limit
        If number Mod i = 0 Then
            factors.Add(i)  ' Add divisor
            ' Add quotient if it's different
            Dim quotient As Long = number \ i
            If quotient <> i Then
                factors.Add(quotient)
            End If
        End If
    Next
    
    ' Sort and display factors
    factors.Sort()
    lstFactors.DataSource = factors
    lblCount.Text = $"{factors.Count} factors found"
    
    ' Check if prime
    If factors.Count = 2 Then
        lblPrime.Visible = True
    Else
        lblPrime.Visible = False
    End If
End Sub

Algorithm Explanation

The most efficient way to find all factors of a number is to iterate only up to the square root of the number. This approach has O(√n) time complexity compared to O(n) for a naive approach.

Key Insight

If a number n has a factor i, then n/i is also a factor.

Efficiency

For n = 1,000,000, we only need 1,000 checks instead of 1,000,000.

Pseudocode

1. Add 1 to factors
2. For i from 2 to √n:
   - If n % i == 0, add i and n/i
3. Add n

Exercise: Prime Number Checker

Modify the factors finder to also determine if the number is prime. A prime number has exactly two distinct factors: 1 and itself.

Hint: After finding all factors, check if the count is 2.