核心代码就那几句,从2到a\2循环检测a除i的余数,若余数为0,证明i是a的其中一个因数,将i保存在因数数组里面,注意事先并不知道数组arr()的长度,因此每次进入循环需要redim重新定义数组长度,preserve关键字保留数组中原来已经存进去的数据(否则重新定义的话,数组里原有的数据会丢失!)
Public Class Form1
Dim flag As Integer = 0
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim a As Integer = 63 '以63为例测试,随便改
Dim arr() As Integer
For i = 2 To a \ 2
If a Mod i = 0 Then
ReDim Preserve arr(flag)
arr(flag) = i
flag += 1
End If
Next
Dim str As String = Nothing
For i = 0 To (arr.Length - 1)
str = str & arr(i) & " "
Next
MsgBox(a & "的因数有:" & str)
End Sub
End Class