Recherche nombre premier excel

Description

bonjour
je debute en programation et voici mon premier code
il cherche tout les nombre premier dans un intervale de minimum 2 a max 2147483647 et dit si un nombre particulier et premier ou pas(je ferrai une modif pour qu'il accept plus mais j'ai pas encore le temp)
je le donne sous exel pour que vous ayer aussi ma presentation(je ne fais pas encore d'userform)
donc voila
il y a diverse option qui peuvent jouer sur le temp ou le fun
par exemple l'affichage de la liste de tout les nombre premier ou non, la limite de ligne remplie pour la liste(sinon sa devient inlisible), le taux de rafrechissement car il peut indiquer le temps passer et le nombre en cours(dans la barre de tache)(si taux de rafrechissement =0 pas de rafrechissement)et le dernier qui est juste pour le fun, il suit la case en cour
mais vous verrez sa par vous meme
a+
P.S: tout commentere est bien venu(sauf pour les fautes de grammaire ;-)

Source / Exemple :


Sub nbrpremier()

Dim debut As Date
Dim fin As Date
Dim Duree As Date

Dim n As Variant
Dim d As Variant
Dim premier As Integer
Dim p As Variant
Dim c As Variant
Dim Max As Variant
Dim Min As Variant
Dim Limp As Variant
Dim compteur As Variant
Dim tauxrafrech As Variant

Min = Cells(1, 2)
Max = Cells(1, 3)
Limp = (Cells(3, 2) + 6)             'nombre de cellules remplie avant retour a la colonne suivante
debut = Time
p = 7
c = 1
compteur = 0
tauxrafrech = 0

Rows("7:9999").Clear
Columns(4).Clear

For n = Min To Max
    tauxrafrech = tauxrafrech + 1
    premier = 1
    For d = 2 To (n ^ 0.5)
        If (n Mod d) = 0 Then
            premier = 0
            Exit For
        End If
    Next d
If premier = 1 Then
        compteur = compteur + 1
End If

If Cells(2, 2) = 1 Then
    If premier = 1 Then
        If p <= Limp Then
            Cells(p, c) = n
            p = p + 1
        Else
            p = 7
            c = c + 1
            Cells(p, c) = n
        End If
        
    End If

    If Cells(5, 2) = 1 Then
        Cells(p, c).Select
    End If
    If tauxrafrech = Cells(4, 2) Then
        tauxrafrech = 0
        fin = Time
        Duree = fin - debut
        Application.StatusBar = "Durée " & Duree & " total nbr premier " & compteur & " Nbr en cours " & n
    End If
Else
    If tauxrafrech = Cells(4, 2) Then
        tauxrafrech = 0
        fin = Time
        Duree = fin - debut
        Cells(1, 4) = "Durée " & Duree
        Cells(2, 4) = "total nbr premier " & compteur
        Cells(3, 4) = "Nbr en cours " & n
    End If
End If

Next n

Cells(3, 4).Clear
Application.StatusBar = Clear
Cells(1, 1).Select
fin = Time
Duree = fin - debut
Cells(1, 4) = "Durée totale " & Duree
Cells(2, 4) = "total nbr premier " & compteur

End Sub

Codes Sources

A voir également

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.