Título: Descomponer o factorizar un numero Publicado por: Neobius en 20 Abril 2006, 17:40 pm Hay alguna funcion en Visual Basic 6 que sirva para descomponer o factorizar un numero?? (ej.: 6=2*3)
Título: Re: Descomponer o factorizar un numero Publicado por: Robokop en 20 Abril 2006, 19:14 pm Citar Option Explicit Private Sub cmdCalcular_Click() ' Declarar las variables a utilizar: Dim B As Integer ' Para los bucles. Dim lngFactores() As Long ' Este array alojará los factores en los que se ' descompone el número. Dim NFacts As Long ' Número de factores que han aparecido. Dim Numero As Long ' El número que se utiliza para llevar a cabo ' las operaciones. Dim strTmp As String ' Una ayudita para, después, construir una cadena ' de texto que se mostrará en un cuadro de mensaje. ' Si el número no es entero, convertirlo y mostrarlo redondeado en el TextBox. txtNumero = CLng(Val(txtNumero)) ' Se asigna el número del TextBox a la variable. Numero = Val(txtNumero) ' Si el número es inferior a 2 ( y mayor que 0), el número está en un factor. If Numero >= 0 And Numero < 2 Then ReDim lngFactores(0) lngFactores(0) = Numero GoTo FIN End If ' Si el numero es negativo, calcular como si fuese uno positivo. If Numero < 0 Then Numero = -Numero B = 2 While B <= Numero ' Bucle. If Numero Mod B = 0 Then ' Si el numero se puede dividir por B, significa que B ' es un factor. ReDim Preserve lngFactores(NFacts) ' Redimensionar la variable que guarda ' los factores. lngFactores(NFacts) = B ' Guardar el factor en la variable. NFacts = NFacts + 1 ' Ahora hay un factor más. Numero = Numero \ B ' Se divide el número para buscar otros divisores. Else ' Si B no es factor, probar con el siguiente número. B = B + 1 End If Wend ' Ahora todos los factores del número están en la variable lngFactores. ' Vamos a hacer que aparezcan en un mensaje multipliándose entre ellos. ' (2 * 2 * 3 ...) ' Para ello se recorre el array, por medio de un bucle, y se van colocando ' en una variable de cadena. For B = 0 To UBound(lngFactores) strTmp = strTmp & lngFactores(B) & " * " Next B ' Una vez construida la cadena, se muestra el mensaje mostrando los factores. MsgBox "El número " & Val(txtNumero) & " descompuesto es: " & Mid(strTmp, 1, Len(strTmp) - 3) End Sub Codigo sacado de el guille --> http://www.elguille.info/colabora/vb2005/XabiO_Descomponer.htm |