VB.NET 求完数 有效果图

来源:百度知道 编辑:UC知道 时间:2024/06/11 06:50:03
Module Module1

Sub Main()
Dim i, j As Integer
Dim n As Integer = 0
Dim s As Integer = 0
Dim yz(n) As Integer

For i = 2 To 1000
For j = 1 To i - 1

If i Mod j = 0 Then

s = s + j

yz(n) = j

n = n + 1

End If

Next

Next
For i = 1 To n
If j = s Then
Console.Write("{0}的因子有:{1}", i, yz(n))
End If
Next
End Sub

End Module

Private Sub Command1_Click()
Dim I As Long, J As Long, N As Long, nStr As String
Dim Y() As Long, Ys As Long, S As Long, Str1 As String
Dim Ci As Long

N = 1000 '查找 1 到 1000 之间的完数,可修改
For I = 2 To N
Ys = 0: ReDim Y(1)
For J = 1 To I * 0.5
Ci = Ci + 1
If Ci > 10000 Then
Ci = 0
Me.Cls
Me.Print " 正在查找 1 到 " & N & " 之间的完数:" & I
Me.Refresh
End If
If I Mod J = 0 Then
Ys = Ys + 1: ReDim Preserve Y(Ys)
Y(Ys) = J
End If
Next

S = 0: Str1 = " " & I & " 的因子有:"
For J = 1 To Ys
S = S + Y(J)
Str1 = Str1 & Y(J) & " "
Next
If S = I Then
nStr = nStr & Str1 & vbCrLf
End If
Next
Me.Cls