Nombres premiers

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 575 fois - Téléchargée 32 fois

Contenu du snippet

Cette source permet de rechercher tous les nombres premiers situés entre deux bornes. Il faudra donc préciser les deux bornes entre lesquelles vous désirez rechercher les nombres premiers.

Source / Exemple :


Dim BI As Long
Dim BS As Long
Dim I As Long
Dim Nb As Long
Dim Compteur As Long
Dim Flag As Long
Dim Test As Long

List1.Clear

BI = Val(Text1.Text)
BS = Val(Text2.Text)
I = BI

Do While I < 2
Flag = 0
I = I + 1
Loop

Do Until I > BS
Nb = I
Compteur = 2
Flag = 1
  Do While (Compteur <= int(sqr(Nb)) And Flag = 1)
    Test = Nb Mod Compteur
      If Test = 0 Then
        Flag = 0
      End If
    Compteur = Compteur + 1
  Loop

If Flag = 1 Then
  List1.AddItem Nb
End If
I = I + 1

Loop

Conclusion :


Pour le faire fonctionner, il suffit de mettre deux "textbox", un commande bouton et une liste...

A voir également

Ajouter un commentaire Commentaires
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
J'y vais... j'y vais...

Encore une dernière remarque :

Tu déclare BI, puis tu défini BI avec la valeur de Text1... Bon, trés bien... Je suppose que BI, c'est pour Borne Inférieure... L'ennui c'est qu'ensuite BI n'est jamais plus utilisé... En d'autre terme, on peut effacer les deux lignes où BI apparaît...

A se demander, si le code est complet...
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
A bon, aller... encore moi... (après je dors...)

Tu écris :

Test = Nb Mod Compteur
If Test = 0 Then
Flag = 0
End If

IL serait plus "propre" d'écrire : (p'être plus rapide aussi...)

If (Nb Mod Compteur)=0 then Flag=0

Et on économise la déclaration de la variable Test, en prime...
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Je continue un peu...

Si on reprends le début, on aurait la même chose avec :

Dim BI, BS, I, Nb, Compteur, Flag, Test As Long

List1.Clear
BI = Val(Text1.Text)
BS = Val(Text2.Text)
I=2

A+

Amicalement,
Us.
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Encore un truc...

Tu écris :

Do Until I > BS
Nb = I
Compteur = 2
Flag = 1


Donc dés le début Flag=1... Pourquoi pas... (pour l'instant j'ai pas regardé la suite...)

Mais, alors se pose toute de suite la question : Pourquoi avoir Flag à zéro ?... juste avant...
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
JE bafouille...

Y'a encore un truc qui sert vraiment à rien :
I = BI

puisque toute de suite aprés tu passe I dans la fameuse boucle While ! donc tu met I à 2... alors, je me demande à quoi est-ce utile d'avoir mis juste avant I=BI ? ... C'est une perte de temps...
Afficher les 8 commentaires

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.