Hola, necesito crear una función que indique si un número pasado como argumento es de gran alcance.
De momento tengo la función para hacer la descomposición factorial:
Function descomposicionFactorial(numero As Long) As String
Dim factor As Long
Dim multiplicidad As Long
Dim descomposicion As String
Dim resto As Long
factor = 2
descomposicion = ""
resto = numero
If numero = 1 Then
descomposicion = "1·"
End If
Do Until resto = 1
If resto Mod factor = 0 Then
multiplicidad = 1
Do
multiplicidad = multiplicidad + 1
DoEvents
Loop While resto \ factor Mod factor ^ (multiplicidad - 1) = 0
resto = resto \ factor ^ (multiplicidad - 1)
If multiplicidad - 1 = 1 Then
descomposicion = descomposicion & CStr(factor) & "·"
Else
descomposicion = descomposicion & CStr(factor) & "^" & CStr(multiplicidad - 1) & "·"
End If
End If
If resto <> 1 Then factor = factor + 1
'DoEvents
Hola, necesito crear una función que indique si un número pasado como argumento es de gran alcance.
De momento tengo la función para hacer la descomposición factorial:
Function descomposicionFactorial(numero As Long) As String
Dim factor As Long
Dim multiplicidad As Long
Dim descomposicion As String
Dim resto As Long
factor = 2
descomposicion = ""
resto = numero
If numero = 1 Then
descomposicion = "1·"
End If
Do Until resto = 1
If resto Mod factor = 0 Then
multiplicidad = 1
Do
multiplicidad = multiplicidad + 1
DoEvents
Loop While resto \ factor Mod factor ^ (multiplicidad - 1) = 0
resto = resto \ factor ^ (multiplicidad - 1)
If multiplicidad - 1 = 1 Then
descomposicion = descomposicion & CStr(factor) & "·"
Else
descomposicion = descomposicion & CStr(factor) & "^" & CStr(multiplicidad - 1) & "·"
End If
End If
If resto <> 1 Then factor = factor + 1
'DoEvents
Loop
descomposicionFactorial = Mid(descomposicion, 1, Len(descomposicion) - 1)
End Function