Vbsupernul
Messages postés287Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention18 janvier 2004 10 déc. 2002 à 15:42
qui savent pas faire... Comme moi :D...
Modulo, ok je vais essayer...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 10 déc. 2002 à 13:48
C'est que le code est un peu long, et l'utilisation des modulo t'aurais éviter quelques lignes, mais c'est tout de même intéressant pour ceux qui ne savent pas comment faire.
DARK SIDIOUS
cs_6Po
Messages postés105Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention22 janvier 2009 10 déc. 2002 à 13:40
Pour je poste vi une source que j'ai fait en 5 min
Il faut aussi crée un textbox avec le nom text1 pour donne la valeur
Ce code est a mettre sur un bouton.
Dim n As Long
Dim i As Long
Dim racine2n As Long
n = CLng(Val(Text1.Text))
'CAS DE BOARD
If n 0 Or n 1 Then MsgBox "0 et 1 ne sont pas des nombres premiers": Exit Sub
'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
MsgBox Str(n) + " est pas un nombre premier car divisible par 2!"
Exit Sub
Else
MsgBox Str(n) + " est un nombre premier !"
Exit Sub
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
MsgBox Str(n) + " est pas un nombre premier car divisible par " + CStr(i) + " !"
Exit Sub
End If
Next i
'SI ON ARRIVE ICI C'EST QUE LE NOMBRE EST PREMIER (SAUF 2)
MsgBox Str(n) + " est un nombre premier !"
cs_6Po
Messages postés105Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention22 janvier 2009 10 déc. 2002 à 13:27
Arf!!!!!!!!!
Faire des test avec du TEXTE c'est tres mauvais.
Utilise le modulo
--> Modulo retourne le reste d'une division donc 5 / 2 = 2 reste 1
5 Mod 2 = donc 1
Si tu fais un test
IF nbaverifier mod diviseur = 0 ca veut dire que diviseur et un multiple de nbaverifier
et bon ton code n'est pas tres net :p
Vbsupernul
Messages postés287Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention18 janvier 2004 10 déc. 2002 à 12:56
Je vais me faire insulter, y a une autre source bokou + courte sur le site...
Dommage avec Integer ça monte pas très haut (le nombre max)
10 déc. 2002 à 15:42
Modulo, ok je vais essayer...
10 déc. 2002 à 13:48
DARK SIDIOUS
10 déc. 2002 à 13:40
Il faut aussi crée un textbox avec le nom text1 pour donne la valeur
Ce code est a mettre sur un bouton.
Dim n As Long
Dim i As Long
Dim racine2n As Long
n = CLng(Val(Text1.Text))
'CAS DE BOARD
If n 0 Or n 1 Then MsgBox "0 et 1 ne sont pas des nombres premiers": Exit Sub
'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
MsgBox Str(n) + " est pas un nombre premier car divisible par 2!"
Exit Sub
Else
MsgBox Str(n) + " est un nombre premier !"
Exit Sub
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
MsgBox Str(n) + " est pas un nombre premier car divisible par " + CStr(i) + " !"
Exit Sub
End If
Next i
'SI ON ARRIVE ICI C'EST QUE LE NOMBRE EST PREMIER (SAUF 2)
MsgBox Str(n) + " est un nombre premier !"
10 déc. 2002 à 13:27
Faire des test avec du TEXTE c'est tres mauvais.
Utilise le modulo
--> Modulo retourne le reste d'une division donc 5 / 2 = 2 reste 1
5 Mod 2 = donc 1
Si tu fais un test
IF nbaverifier mod diviseur = 0 ca veut dire que diviseur et un multiple de nbaverifier
et bon ton code n'est pas tres net :p
10 déc. 2002 à 12:56
Dommage avec Integer ça monte pas très haut (le nombre max)