voila encore un nouveau prog sur les nombres premiers.
mais la methode différe , il me semble de l'avoir jamis deja vu.
n'hesistait a mettre des commentaires. merci
bon j'avoue que l'affichage je l'ai recopié.
Source / Exemple :
For i = p To n Step 2
Label3.Caption = i
Label4.Caption = UBound(Tbl_nb)
DoEvents
'Arret de la procedure des que l'on click sur le bouton "Arret"
If cmd_stop.Value = True Then
GoTo Fin
End If
For j = 1 To UBound(Tbl_nb)
'decrementation de tous les compteurs
'si l'un de compteur est a zero on le réiniatialise
'si le compteur est a zero signifie que le nombre premier que l'on cherche _
est un multiple du nombre en cours de décrementation _
donc qu 'il n'est pas premier
If Tbl_compteur(j) = 0 Or Tbl_compteur(j) = -1 Then
If Tbl_compteur(j) = 0 Then
Tbl_compteur(j) = Tbl_nb(j) - 2
Else
Tbl_compteur(j) = Tbl_nb(j) - 3
End If
Else
Tbl_compteur(j) = Tbl_compteur(j) - 2
End If
'si apres la decrementation l'un des compteur est a zero ce n'est pas un nb premier
If Tbl_compteur(j) = 0 Then Not_pre = True
Next j
If Not_pre = False Then
'redimensionnement des tableaux des qu'un nb premier est trouvé
ReDim Preserve Tbl_nb(UBound(Tbl_nb) + 1)
ReDim Preserve Tbl_compteur(UBound(Tbl_compteur) + 1)
'ajout du nombre premier
Tbl_nb(UBound(Tbl_nb)) = i
Tbl_compteur(UBound(Tbl_compteur)) = 0
End If
Not_pre = False
Next i
Conclusion :
j'ai trouvé un moyen de ne pas utiliser de division.
puisque cela est tres lourd en temps de calcul.
je n'utilise que des tableaux avec des compteur que je decremente un a 1
pour chaque nb premier y'a un compteur.
pour rechercher si le nb est premier je test si l'un des compteur est a zero.
sinon c'est un nombre premier et je l'ajoute au tableau.