Nombre premier ou pas ?

Contenu du snippet

A force de voir des sources pour calculer les nb premiers, avec des tech de plus en plus STAGE voici une petite source fait en 2 min qui montre qu'on peut faire ca facilement.

Source / Exemple :


Private Function isPremier(ByVal n As Long) As Boolean
    Dim i           As Long
    Dim racine2n    As Long
    
    'CAS DE BOARD
    If n = 0 Or n = 1 Then isPremier = False: Exit Function
    
    'SI UN POYO MET UN NOMBRE NEGATIF
    If n < 0 Then n = n * -1
    
    'ON FAIT LE TEST A CAUSE DU 2
    'VU QUE LA BOUCLE FOR COMMENCE A 3
    If n Mod 2 = 0 Then
        If n <> 2 Then
            isPremier = False
            Exit Function
        Else
            isPremier = True
            Exit Function
        End If
    End If
    
    'LA RACINE CARREE DE N
    racine2n = Sqr(n)
    
    'LA BOUCLE DE TESTS
    For i = 3 To racine2n Step 2
        If n Mod i = 0 Then
            isPremier = False
            Exit Function
        End If
    Next i
    
    'SI ON ARRIVE ICI C'EST QUE LE NOMBRE EST PREMIER (SAUF 2)
    isPremier = True
End Function

Conclusion :


EDIT 10/12/2002 a 15:31
---Deja désole pour le triple poste :p
---Si tu passes par la Nix stp efface les 2 de trop :p

---je voulais encore dire que la version aKheNathOn
---du For i = 2 .... est bugée :p c'est pour ca que j'ai fait le IF
---bhen vi le nb 2 est premier :p mais la tu vas essayer de faire
---2 mod 2 forcement = 0 donc selon toi FAUX enfin SELON VB :p
---pour les nb > que 2 ca marche

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.