Est ce un chiffre premier?(fonction)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 077 fois - Téléchargée 42 fois

Contenu du snippet

Reçoit un chiffre et renvoi vrai si c'est un chiffre premier

Source / Exemple :


Private Function isCpremier(ByVal iChiffre As Long) As Boolean
    '----
    If iChiffre < 4 Or iChiffre = 5 Or iChiffre = 7 Then
        isCpremier = True
        Exit Function
    End If
    
    If iChiffre <= 7 Or iChiffre Mod 2 = 0 _
                     Or iChiffre Mod 3 = 0 Then
        isCpremier = False
        Exit Function
    End If
    
    Dim i As Long, j As Long, r As Long, r2 As Long
    r = 1: r2 = 1
    Do While (i * i <= iChiffre And r * r2 > 0)
        j = j + 1
        i = 6 * j - 1: r = iChiffre Mod i
        i = i + 2: r2 = iChiffre Mod i
        If r = 0 Or r2 = 0 Then
            If r = 0 Or i = i - 2 Then
                isCpremier = False
            End If
        Else
            isCpremier = True
        End If
    Loop
End Function

Conclusion :


@+,vic

A voir également

Ajouter un commentaire

Commentaires

Messages postés
119
Date d'inscription
lundi 15 avril 2002
Statut
Membre
Dernière intervention
28 novembre 2008

ça pour faire simple bestmomo tu fais simple!
je t'invite à retourner potasser tes bouquins de troisième parce que pour moi les multiples de 5 ne sont pas des nombres premiers (excepté 5 !)
Alors tu peux faire des alorithmes simples mais faufrait pas en oublier la moitié
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
"Les chiffres sont aux lettres
ce que les nombres sont aux mots"
Les chiffres premiers sont 1, 2, 3, 5, 7 -> Pas besoin de programme pour ça.
Pour les nombres, autre histoire ...
Messages postés
235
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
9 novembre 2007

tu peux meme gagner plein de lignes si tu mets : partout lol
++
Messages postés
439
Date d'inscription
dimanche 20 janvier 2002
Statut
Membre
Dernière intervention
2 février 2010
1
YES !!, Kool
Tu peux même gagner une ligne : 'isprime = false' puisque la fonction renvoi false par défaut! (en vb du moins...) @+ et bonne prog
Messages postés
132
Date d'inscription
samedi 25 mai 2002
Statut
Membre
Dernière intervention
31 août 2007

On peut faire plus simple :

Public Function IsPrime(ByVal n As Long) As Boolean
Dim i As Long
IsPrime = False
If n <> 2 And (n And 1) = 0 Then Exit Function 'test si div 2
If n <> 3 And n Mod 3 = 0 Then Exit Function 'test si div 3
For i = 6 To Sqr(n) Step 6
If n Mod (i - 1) = 0 Then Exit Function
If n Mod (i + 1) = 0 Then Exit Function
Next
IsPrime = True
End Function

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.