Saltar al contenido

VBA Números de Gran Alcance


Recommended Posts

publicado

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

 

publicado

perdón, intento cambiar mi definición.

un número de gran alcance para mí es aquel que en su descomposición factorial en números primos, no hay ningún número que no esté elevado a 2 o más de 2.

p.ej: el 5 no es un número de gran alcance pero el 8 cuya desc.fact es 2^3, si que sería un número de gran alcance.

 

Espero haberme explicado,

gracias

publicado
Hace 8 horas, avalencia dijo:

Humm, al menos yo no te entiendo, no sé si alguien sí pudo hacerlo. Quizás si poner 4 o 5 ejemplo "a mano", explicación incluida, podamos entender.

Lo que yo he entendido, por ejemplo, 30 no es un número de gran alcance, 12 si lo es, ¿Porqué? si descompones 30 obtienes 5 x 3 x 2, ninguno de los factores se repite, sin embargo, si descompones 12 obtienes 2 x 2 x 3, en esta descomposición el 2 se repite, por eso es un número de gran alcance. Otro ejemplo 42 (2 x 3 x 7) no lo es, 126 (2 x 3 x 3 x 7) si lo es, ya que se repite el 3. Resumiendo, son números de gran alcance aquellos números que, en cuya descomposición en número primos, se repite alguno de ellos.

publicado
Hace 45 minutos , Antoni dijo:

Lo que yo he entendido, por ejemplo, 30 no es un número de gran alcance, 12 si lo es, ¿Porqué? si descompones 30 obtienes 5 x 3 x 2, ninguno de los factores se repite, sin embargo, si descompones 12 obtienes 2 x 2 x 3, en esta descomposición el 2 se repite, por eso es un número de gran alcance. Otro ejemplo 42 (2 x 3 x 7) no lo es, 126 (2 x 3 x 3 x 7) si lo es, ya que se repite el 3. Resumiendo, son números de gran alcance aquellos números que, en cuya descomposición en número primos, se repite alguno de ellos.

¿Esta consulta es la misma que esta? Números de gran alcance entre dos valores dados

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.