Excel – priemgetallen

excel_priemgetal

Een priemgetal is een geheel positief getal dat groter is dan 1 en alleen deelbaar is door 1 en zich zelf. Een geheel positief getal wordt ook wel een natuurlijk getal genoemd.

Met behulp van de zelf gedefinieerde functie IsPriem(Getal) kan achterhaald worden of een getal een priemgetal is of niet.

'-----------------------------------------------------------------------------------------------------------------------
' Auteur        : pascalterheege.nl
' Datum         : 16-3-2016
' Object        : modFunctie
' Doel          : priemgetal berekenen
' Bron          : https://support.microsoft.com/nl-nl/kb/202782
'                 http://beterrekenen.nl/website/index.php?pag=248
'-----------------------------------------------------------------------------------------------------------------------

Option Explicit

'-----------------------------------------------------------------------------------------------------------------------
' Datum         : 16-3-2016
' Type          : Subroutine
' Opmerking     : een priemgetal is:
'                   1. Een getal
'                   2. Een geheel getal
'                   3. Groter dan 1
'                   4. En niet deelbaar door een ander getal dan 1 en zich zelf
'-----------------------------------------------------------------------------------------------------------------------

Public Function IsPriem(Getal) As Boolean

'   1. Een getal
    If Not IsNumeric(Getal) Then Exit Function

'   2. Een geheel getal
    If Getal - Int(Getal) <> 0 Then Exit Function

'   3. Groter dan 1
    If Not Getal > 1 Then Exit Function
   
'   4. En niet deelbaar door een ander getal dan 1 en zich zelf
    If Deelbaar(Getal) = True Then Exit Function
    
    IsPriem = True

End Function

'-----------------------------------------------------------------------------------------------------------------------
' Datum         : 16-3-2016
' Type          : Subroutine
' Opmerking     : 4. En niet deelbaar door een ander getal dan 1 en zich zelf
'-----------------------------------------------------------------------------------------------------------------------

Private Function Deelbaar(Getal) As Boolean

    Dim AnderGetal As Integer

    AnderGetal = 1
    
    For AnderGetal = 1 To Getal
    
        If Getal Mod AnderGetal = 0 Then        'Getal is deelbaar door een ander getal
            If AnderGetal > 1 Then              'Het andere getal is groter dan 1
                If AnderGetal <> Getal Then     'Het andere getal is niet gelijk aan het getal
                    Deelbaar = True             'DUS > GEEN PRIEMGETAL
                    Exit For
                End If
            End If
        End If
    
    Next AnderGetal

End Function

Download hier het oefenbestand.