Nombre premier autre methode

Description

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.

Codes Sources

A voir également