** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Tus Funciones Favoritas & Aportaciones & Artí­culos
  Mensajes nuevos Mensajes nuevos RSS - Divisores y primos.
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoDivisores y primos.

 Responder Responder
Autor
Mensaje
Sheerkhan Ver desplegable
Asiduo
Asiduo


Unido: 01/Octubre/2011
Estado: Sin conexión
Puntos: 251
Enlace directo a este mensaje Tema: Divisores y primos.
    Enviado: 05/Abril/2018 a las 19:47
Con esta función podremos conocer el mínimo divisor de un número, por lo tanto si este es la unidad, el número en cuestión será primo.

Public Function Div_Primo(N As Double) As Double
'Devuelve el mínimo divisor mayor que la unidad, si lo tiene,
' de no tenerlo, devuelve la unidad, por lo tanto será primo.
'uso: Div_Primo 231 devuelve: 3
'autor: EBS "Sheerkhan"

Dim i As Double 'Variable incremental
Dim k As Double 'Raíz cuadrada del número a evaluar
Dim EsPrimo As Boolean

If N < 2 Or N > Int(N) Or IsNull(N) Then
    MsgBox "Por definición, debe ser entero, positivo y mayor que la unidad."
    Exit Function
End If

If N = 2 Or N = 3 Then
    EsPrimo = True
    'Descarto los pares
ElseIf N Mod 2 = 0 Then
    EsPrimo = False
    i = 2
Else
    k = Sqr(N)

    For i = 3 To N Step 2
        If N Mod i = 0 Then
            EsPrimo = False
            Exit For
        ElseIf i < k Then
            EsPrimo = True
            Exit For
        End If
    Next i
End If
    
If EsPrimo = True Then
    Div_Primo = 1
    MsgBox N & " es primo."
Else
    Div_Primo = i
    MsgBox N & " es divisible por: " & i
End If

End Function
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable