
14/01/2009, 03:45
|
Colaborador | | Fecha de Ingreso: enero-2008 Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 2 meses Puntos: 37 | |
Respuesta: como hallar todos los divisores pares de primeros N natural? Cita:
Iniciado por vdiaz18 SALUDOS ESPERO QUE ESTO TE SIRVA ....
La interfaz tiene 2 textbox y un boton de comando...
Private Sub Command1_Click()
Dim Divisores(10) As Integer
Dim DivisoresPares(10) As Integer
Dim Residuo As Integer
Dim Numero As Integer
Numero = Val(Me.txtNum.Text)
j = 1
For i = 1 To Numero
Residuo = Numero Mod i
If Residuo = 0 Then
Divisores(j) = i
j = j + 1
End If
Next
k = 1
For i = 1 To j - 1
Residuo = Divisores(i) Mod 2
If Residuo = 0 Then
DivisoresPares(k) = Divisores(i)
k = k + 1
End If
Next
'Cargar datos al textbox de respuesta
For i = 1 To k - 1
Me.txtRes.Text = Me.txtRes.Text + Str(DivisoresPares(i))
Next
End Sub Bueno, el código de vdiaz18 solo funciona si "Numero" es 20, con cualquier otro falla.
Alternativa:
Código:
Private Sub Command1_Click()
Dim Numero As Integer, i As Integer, k As Integer, Pares() As Integer, a() As String
Numero = Val(TxtMax.Text) ' en txtMax: 20 (o cualquier otro)
a() = Split(txtNumeros.Text, ",") ' en txtNumeros: 1, 2, 4, 5, 10, 20
ReDim Pares(0)
For i = 0 To UBound(a)
If Val(a(i)) >= Numero Then Exit For
If Val(a(i)) Mod 2 = 0 Then
ReDim Preserve Pares(UBound(Pares) + 1)
Pares(k) = Val(a(i))
k = k + 1
End If
Next i
txtRes = ""
For i = 0 To UBound(Pares) - 1
txtRes.Text = txtRes.Text & Pares(i) & " " ' txtRes = 2 4 10 20
Next i
End Sub
|