Ayuda con la implementación de programa en visual basic 6.0 para desplegar un listbox con números

Necesito que me ayuden con un programa en visual basic6.0
se trata que te despliegue en un listbox los 3 primeros números perfectos de un ciclo de 1 hasta 500
tanto del divisor y otro para el dividendo
un numero perfecto es aquel que la suma de los números enteros que son divisores de este dan igual a este numero ejemplo el 6 es un numero perfecto ya que 6/3=2,6/2=3,6/6=1 y la suma de estos da a 6, 3+2+1=6 ayudenme con la codificación ya que es para un examen extraordinario que es el martes 24 de junio, supongamos que en un command button llamado calcular le de clic y en un list box me aparezcan los 3 primeros números perfectos

2 Respuestas

Respuesta
1
Aquí tienes el código para añadir a un list los 3 primeros números perfectos, ahora solo tienes que adaptarlo a tu programa.
Private Sub Command1_Click()
Dim i As Integer
Dim d As Integer
Dim z As Integer
Dim x As Integer
Dim f As Integer
For i = 1 To 500
d = 0
For x = 1 To i
z = i Mod x
If z = 0 Then
MsgBox i & "/" & x
d = d + x
End If
Next x
If i = d / 2 Then
List1.AddItem i
End If
If List1.ListCount > 3 Then
Exit Sub
End If
Next i
End Sub
Suerte y saludos
Respuesta
1
En un Formulario pones 2 TextBox, 1 CommandButton y un ListBox
El los TextBox escribes los Límites del cálculo, p.e. 1 y 500
En el Evento Click de CommandButton:
Dim inic As Long, final As Long, i As Long, j As Long
List1.Clear
inic = Val(Text1)
final = Val(Text2)
If inic = 1 Then inic = 2
i = inic
Do
j = (2 ^ (i - 1)) * (2 ^ i - 1)
If j > final Then Exit Sub
If EsPerfecto(j) Then
List1.AddItem j
End If
i = i + 1
Loop
y la función EsPerfecto:
Function EsPerfecto(n As Long) As Boolean
Dim Suma As Long, i As Long
Suma = 1
i = 2
Do While i <= n \ 2
If (n Mod i) = 0 Then
Suma = Suma + i
End If
i = i + 1
Loop
If Suma = n Then
EsPerfecto = True
Else
EsPerfecto = False
End If
End Function
Utiliza la Propiedad de Euclides: Un Número Perfecto i es de la forma (2^(i - 1))*(2^i - 1)
Es todo.
Mucha suerte en tu Examen !
Rogers R.
PUES. No olvides la valoración.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas