|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
VÉRIFIE SI UN NOMBRE EST PREMIER OU PAS
Information sur la source
Description
Ben c une macro Excel qui vérifie si un nb est ou non premier...
Source
- Sub premierOrNotPremierThatIsTheQuestion()
- '
- ' premierOrNotPremierThatIsTheQuestion Macro
- ' Macro enregistrée le 09/12/2002 par Vbsupernul
- '
-
- '
-
- premierounon2 = InputBox("Entrez le nombre à vérifier")
-
-
- premierounon3 = premierounon2 + 1
- If premierounon2 = "1" Or premierounon2 = "2" Then
- MsgBox ("Pas premier"), vbCritical
- Exit Sub
- End If
- If Right(premierounon2, 1) = 2 Or Right(premierounon2, 1) = 4 Or Right(premierounon2, 1) = 6 Or Right(premierounon2, 1) = 8 Then 'regarde si le dernier chiffre est pair
- MsgBox (premierounon2 & " n'est pas un nombre premier, il est divisible par 2"), vbCritical
- Exit Sub
- ElseIf Right(premierounon2, 1) = 0 Then
- MsgBox (premierounon2 & " n'est pas un nombre premier, il est divisible par 2 et 5"), vbCritical
- Exit Sub
- ElseIf Right(premierounon2, 1) = 5 Then
- MsgBox (premierounon2 & " n'est pas un nombre premier, il est divisible par 5"), vbCritical
- Exit Sub
- End If
- diviseur = "2"
- ledebut:
- resultat = premierounon2 / diviseur 'divise par diviseur
- If InStr(resultat, ",") <> 0 Then 'si c décimal
- GoTo debut 'va à début
- End If
- If InStr(resultat, ",") = 0 Then 'sinon, c'est premier
- MsgBox (premierounon2 & " est un nombre premier"), vbCritical
- Exit Sub
- End If
- debut:
- diviseur = diviseur + 1 'ben là, ajoute 1 au diviseur
- If diviseur < premierounon3 Then 'vérifie que le diviseur est pas + grand que le nb à vérifier
- GoTo ledebut
- End If
- If diviseur = premierounon3 Then
- MsgBox (premierounon2 & " est un nombre premier")
- Exit Sub
- End If
- If diviseur > premierounon3 Then
- MsgBox (premierounon2 & " est un nombre premier")
- Exit Sub
- End If
- End Sub
- 'c assez basik, je commente juste un peu
-
-
- Sub premierOrNotPremierThatIsTheQuestion()
- '
- ' premierOrNotPremierThatIsTheQuestion Macro
- ' Macro enregistrée le 09/12/2002 par Vbsupernul
- '
-
- '
- Sub premierOrNotPremierThatIsTheQuestion()
- '
- ' premierOrNotPremierThatIsTheQuestion Macro
- ' Macro enregistrée le 09/12/2002 par Vbsupernul
- '
-
- '
- Dim nbaverifier As Double
- Dim diviseur As Double
- Dim resultat As Double
- nbaverifier = InputBox("Entrez le nombre à vérifier")
- racinenbaverifier = Sqr((nbaverifier) + 1)
- premierounon3 = nbaverifier
- If nbaverifier = "1" Or nbaverifier = "2" Then
- MsgBox ("Pas premier"), vbCritical
- Exit Sub
- End If
- If Right(nbaverifier, 1) = 2 Or Right(nbaverifier, 1) = 4 Or Right(nbaverifier, 1) = 6 Or Right(nbaverifier, 1) = 8 Then
- MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par 2"), vbCritical
- Exit Sub
- ElseIf Right(nbaverifier, 1) = 0 Then
- MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par 2 et 5"), vbCritical
- Exit Sub
- ElseIf Right(nbaverifier, 1) = 5 Then
- MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par 5"), vbCritical
- Exit Sub
- End If
- diviseur = 3
- ledebut:
- resultat = nbaverifier Mod diviseur
- If resultat <> 0 Then
- GoTo debut
- End If
- If resultat = 0 Then
- MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par " & diviseur), vbCritical, nbaverifier & " n'est pas premier"
- MsgBox ("Le résultat est " & nbaverifier / diviseur)
- Exit Sub
- End If
- debut:
- diviseur = diviseur + 2
- If diviseur = 5 Or diviseur = 9 Then
- diviseur = diviseur + 2
- End If
- If diviseur >= racinenbaverifier Then
- MsgBox (nbaverifier & " est un nombre premier"), vbInformation, "Il est premier, my dear"
- Exit Sub
- End If
- If diviseur < racinenbaverifier Then
- GoTo ledebut
- End If
- 'là ça marche mieux :D
- 'j'ai laissé l'ancienne version, g pas le courage de refaire les commentaires...
Sub premierOrNotPremierThatIsTheQuestion()
'
' premierOrNotPremierThatIsTheQuestion Macro
' Macro enregistrée le 09/12/2002 par Vbsupernul
'
'
premierounon2 = InputBox("Entrez le nombre à vérifier")
premierounon3 = premierounon2 + 1
If premierounon2 = "1" Or premierounon2 = "2" Then
MsgBox ("Pas premier"), vbCritical
Exit Sub
End If
If Right(premierounon2, 1) = 2 Or Right(premierounon2, 1) = 4 Or Right(premierounon2, 1) = 6 Or Right(premierounon2, 1) = 8 Then 'regarde si le dernier chiffre est pair
MsgBox (premierounon2 & " n'est pas un nombre premier, il est divisible par 2"), vbCritical
Exit Sub
ElseIf Right(premierounon2, 1) = 0 Then
MsgBox (premierounon2 & " n'est pas un nombre premier, il est divisible par 2 et 5"), vbCritical
Exit Sub
ElseIf Right(premierounon2, 1) = 5 Then
MsgBox (premierounon2 & " n'est pas un nombre premier, il est divisible par 5"), vbCritical
Exit Sub
End If
diviseur = "2"
ledebut:
resultat = premierounon2 / diviseur 'divise par diviseur
If InStr(resultat, ",") <> 0 Then 'si c décimal
GoTo debut 'va à début
End If
If InStr(resultat, ",") = 0 Then 'sinon, c'est premier
MsgBox (premierounon2 & " est un nombre premier"), vbCritical
Exit Sub
End If
debut:
diviseur = diviseur + 1 'ben là, ajoute 1 au diviseur
If diviseur < premierounon3 Then 'vérifie que le diviseur est pas + grand que le nb à vérifier
GoTo ledebut
End If
If diviseur = premierounon3 Then
MsgBox (premierounon2 & " est un nombre premier")
Exit Sub
End If
If diviseur > premierounon3 Then
MsgBox (premierounon2 & " est un nombre premier")
Exit Sub
End If
End Sub
'c assez basik, je commente juste un peu
Sub premierOrNotPremierThatIsTheQuestion()
'
' premierOrNotPremierThatIsTheQuestion Macro
' Macro enregistrée le 09/12/2002 par Vbsupernul
'
'
Sub premierOrNotPremierThatIsTheQuestion()
'
' premierOrNotPremierThatIsTheQuestion Macro
' Macro enregistrée le 09/12/2002 par Vbsupernul
'
'
Dim nbaverifier As Double
Dim diviseur As Double
Dim resultat As Double
nbaverifier = InputBox("Entrez le nombre à vérifier")
racinenbaverifier = Sqr((nbaverifier) + 1)
premierounon3 = nbaverifier
If nbaverifier = "1" Or nbaverifier = "2" Then
MsgBox ("Pas premier"), vbCritical
Exit Sub
End If
If Right(nbaverifier, 1) = 2 Or Right(nbaverifier, 1) = 4 Or Right(nbaverifier, 1) = 6 Or Right(nbaverifier, 1) = 8 Then
MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par 2"), vbCritical
Exit Sub
ElseIf Right(nbaverifier, 1) = 0 Then
MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par 2 et 5"), vbCritical
Exit Sub
ElseIf Right(nbaverifier, 1) = 5 Then
MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par 5"), vbCritical
Exit Sub
End If
diviseur = 3
ledebut:
resultat = nbaverifier Mod diviseur
If resultat <> 0 Then
GoTo debut
End If
If resultat = 0 Then
MsgBox (nbaverifier & " n'est pas un nombre premier, il est divisible par " & diviseur), vbCritical, nbaverifier & " n'est pas premier"
MsgBox ("Le résultat est " & nbaverifier / diviseur)
Exit Sub
End If
debut:
diviseur = diviseur + 2
If diviseur = 5 Or diviseur = 9 Then
diviseur = diviseur + 2
End If
If diviseur >= racinenbaverifier Then
MsgBox (nbaverifier & " est un nombre premier"), vbInformation, "Il est premier, my dear"
Exit Sub
End If
If diviseur < racinenbaverifier Then
GoTo ledebut
End If
'là ça marche mieux :D
'j'ai laissé l'ancienne version, g pas le courage de refaire les commentaires...
Conclusion
Ben voilà, c assez nul comme code, et ça peut surement être améliorée... Version 4 (déjà), ben voilà, j'ai mis le modulo à la place de la division ;) Maintenant c plutot rapide... ;)
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Comparez les prix Nouvelle version

LG KP501
Entre 9€ et 159€
|